Добрый день.
Нужно добавить на сайт функцию поиска товара по его коду.
Думаю производить поиск по таблице используя LIKE, запрос должен быть следующего вида:
SELECT `field1`, `field2`
FROM `goods`
WHERE `code` LIKE '%код товара%'.
Погуглив прочитал несколько статей и обсуждений на форумах, где-то предлагают использовать обычный индекс, где то предлагают изменить тип поля на бинарный, чтобы поиск проходил путем сравнения байтов.
Кажется при использовании LIKE оптимизируются только запросы типа LIKE 'код товара%', но точно в этом не уверен.
Также склоняюсь к применению полнотекстового индекса, в таком случае нужно будет переносить коды товаров в отдельную таблицу, так как основная таблица использует движок InnoDB.
Сейчас поле код товара имеет тип varchar 25, в базе имеется около 1 млн кодов товаров.
Хотел узнать Ваше мнение, как лучше оптимизировать запросы такого вида?
Примечание:
Неужели администраторы БД не посещают ВИО? ))
RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.
Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.
Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.