Кто-нибудь уже натыкался на затык с медленным поиском LIKE "%str%", я уверен. Сейчас в таблице около 300к записей и будет только больше. По этой таблице нужно искать строки по номеру телефона: полностью, начало, конец.
Примеры:
- 7999541...
- 79995415742
- ...541...
- ...41574
Все 4 варианта поиска актуальны и нужны. Использую MySQL 5.7.26, столбец с номером хранится в varchar(11), но уже даже сейчас запрос на выборку занимает
1.7 сек. — несколько JOIN'ов, но в целом ситуация плоха из-за
LIKE "%str%".
Были идеи на счёт полного перебора всех номеров (РФ) и их частей + хранение хешей этих "запросов на поиск", но дальше идеи не развивается. Возможно ли как-то оптимизировать поиск? Кто применял у себя какие-то плюшки по этому поводу?