У меня есть таблица клиентов, имеющая столбец, имя которого является varchar (255). В приложении у нас есть функция поиска по имени. У нас в этой таблице около 8 миллионов записей. Запрос очень очевиден.MySQL: оптимизируйте производительность поиска в столбце varchar
SELECT customer_table_columns FROM customer_table WHERE customer_name
LIKE '%user input customer name%';
Теперь этот запрос выполняется значительно медленнее (занимает до минуты), и это раздражает пользователей. Мне было интересно, есть ли способ повысить производительность этого запроса.
В этом столбце есть индекс, но тип индекса не определен. Параметры для типа индекса: FULLTEXT, PRIMARY и UNIQUE.
Можете ли вы опубликовать схему таблицы? Использование индекса для столбца должно быть значительно лучше в скорости запросов, но другие вещи, такие как нормализация данных для разделения таблиц и использование внешних ключей, могут помочь сортировать время и т. Д. – helion3
MySQL и «LIKE%» и «миллионы записей» не позволяют, т работать хорошо. Вы действительно выполняете полное сканирование таблицы и не имеете магического решения. Проверить ответ @ http://stackoverflow.com/a/11419105/1306385 –