У меня есть таблица, содержащая пять миллионов адресов в виде строк. Существует пользовательский интерфейс, который позволяет вам искать по адресу, и он реализован самым простым способом - с использованием синтаксиса LIKE
с подстановочными знаками на обоих концах искомой строки. Однако этот подход очень медленный (особенно когда результат поиска нужно сортировать по некоторым критериям). Я думал об использовании полнотекстового поиска, поскольку он был бы намного быстрее, но он ограничивал пользователей, и я не хочу этого, так как большинство поисковых запросов содержат только часть слова. Адреса также могут быть сокращены.Поиск адресов в таблице MySQL
Что я могу сделать? Как я мог реализовать поиск адресов, чтобы быть более эффективным, но не жертвуя большей частью пользовательского опыта.
Редактировать Ive только что прочитал, что я могу реально использовать маску в конце строки при выполнении match against
полнотекстового поиска. Так что если я храню обратный адрес, возможно, я могу сделать префикс подстановочного полнотекстового поиска. Но будет ли это быстрее и сколько? Есть ли какие-то контрольные показатели? Я не мог найти его.
Вы используете индексы? – fedorqui
да, но все же не быстро – alexanderg