@livemirsi

Подобрать базу под задачу проекта?

Добрый день. Проектирую проект(сайт). Будет база, основная таблица будет содержать около 50 000 строк.
В каждой строке, будет столбец в котором будет от 5 до 100 слов (keywords) разделенные каким либо символом. При открытие каждой страницы, будет производиться морфологической поиск (по словам keywords) по данной таблицу, и формировать какие строки показать на ней. Технологию поиска планирую использовать shpinx.
Сейчас хочу использовать базу Msql, так же laravel. Страницы планирую кешировать на сутки, дабы не уронить сайт, постоянным поиском при формирование каждой страницы. Вроде кеширование должно спасти, но может стоит обратить внимание на какую либо другую базу, к тому же laravel предлагает: MySQL, PostgreSQL, SQLite и SQL Server из коробки. Я так понимая основная нагрузка на базу у меня будет из поиска, вроде spinx должен ее уменьшить своей индексацией.

Вообщем надеюсь получить совету, какую базу использовать при таком раскладе, может использовать другую технологию поиска, может кто имел опыт в подобных задачах. Спасибо за внимание.
  • Вопрос задан
  • 428 просмотров
Пригласить эксперта
Ответы на вопрос 4
@deliro
В каждой строке, будет столбец в котором будет от 5 до 100 слов (keywords) разделенные каким либо символом.

Зачем? Захотелось лишних проблем?

Сейчас хочу использовать базу Msql, так же laravel.

Бери постгрес.

Страницы планирую кешировать на сутки, дабы не уронить сайт

Страницы нужно кэшировать тогда, когда бэкенду станет жарко. Ну и.. Кэшировать на сутки? За сутки инфа не меняется? Может, лучше на час и подогревать кэш?

P.S. Не используй конфиг базы из коробки. Хотя, для таких смешных данных, хватит и стандартного конфига.
Ответ написан
romy4
@romy4
Exception handler
смешной размер. любую брать
Ответ написан
kawabanga
@kawabanga
А у вас 50К строк будут иметь разные keywords?

Возможно имеет смысл создать дополнительные таблицы?

Lines
id

Keywords
id | title | (возможно parent_id)

LinesKeywords
id | lines_id | keywords_id

Мне кажется в таком виде будет работать быстрее.
Ответ написан
ruFelix
@ruFelix
Предсказание будущего по руке, таро, кофе.
1) Забиваете на SQLite и SQL Server, первая не про то, вторая под windows.
2) как бы вы не спроектировали базу, и что бы вы не выбрали Mysql или Postgres, отличаться будет только запрос на индексацию для сфинкса, который в любом случае будет отдавать вам primary key нужного вам документа, а выборка по PK в любой базе элементарная операция. Кеширование не нужно, сфинкс ваши максимальные 5 000 000 слов даже не заметит.

на laravel вы видимо будете использовать ORM, поэтому для вас, что postrgers что mysql. Ну разве что mysql более коробочный.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы