Поиск по БД MySQL

252
19 мая 2018, 00:50

Всем привет. Стоит задача разработать интернет магазин по продаже pdf файлов. При добавлении товара, автоматически генерируется 6 поисковых тегов, по которым будет вестись поиск. Пользователь будет вводить строку запроса (типо как в гугл), и ему будет выводится результат поиска. Я сделал две таблице в бд : 1. Таблица с информацией о товаре 2. Таблица поисковых тегов, в которой поля product_id и tag Пользователь вводит запрос, я ищу совпадения в таблице тегов, вытаскиваю оттуда prodcut_id, а затем по product_id вытаскиваю записи с таблице товаров. Но мне кажется, что когда в таблице товаров будет 100 тысяч записей, а в таблице тегов 600 тысяч, то бд будет сильно тормозить, и поиск будет очень долго длится. Проект делаю на Laravel. Подскажите как лучше сделать .

Answer 1

Способ 1. Если теги не обязательно брать из списка, то можно обойтись без второй таблицы и хранить прямо в таблице с информацией о товаре и разделять . или ; и делать поиск по тегам через like.

Способ 2. Индексы. Просто создай индексы. Они как раз нужны, чтобы ускорять такие запросы. Ну и вот статья по этому поводу

UPD: Но первый способ не надо использовать (см. комменты)

READ ALSO
отправка ssl Сертификата для telegram на php

отправка ssl Сертификата для telegram на php

Есть бот, работал пол года, ранее с сертификатом тоже мучался, на проблема решилась

294
lower() меняет кодировку текста

lower() меняет кодировку текста

пытаюсь связать python с php, а именно - внедрить нейронные сети в сайтвызываю из php скрипт таким образом:

248
Генерация ключа для защиты от curl

Генерация ключа для защиты от curl

Я, конечно, понимаю, что curl - это вообще законная вещьНо в один прекрасный момент какой-то пользователь сайта сделал цикл, который отправляет...

255
Что такое $this?

Что такое $this?

Никак не могу понять что собой представляет $this в PHP ООПВроде бы и ясно, а вроде бы и нет, объясните кто может, зарание спасибо на ответ!

257