Re: Коды стран и городов
Правда ваша.
Но я лично не сторонник такого подхода - напереписывался уже систем за разработчиками у которых если запрос визуально быстро выполняется - то и ладно. (Визуально это когда он enter в mysql CLI нажал и ответ довольно шустро выскочил). И такое запускается в продакшен. А потом число записей в базе увеличивается в 10-100 раз и система ложится.
Миллисекунды миллисекундам рознь - визуально вы ни 1, ни 10 ни 100 не отличите. А производительность системы меняется в разы. Но тут мы опять возвращаемся к главному вопросу - зачем это нужно. Если это делается в начале каждого звонка на системе которая обрабатывает 10 звонков в минуту - то в общем пофиг как делать. Если же это какой-то batch processor для огромного объема информации, то ускорение query в 10 раз - это по сути ускореение всей обработки в 10 раз.
И кстати, если считать что full scan это ок, то по-моему геморроится с дополнительным полем длины вообще не нужно - регексп сделает все горазддо элегантнее
SELECT *
FROM destinations
WHERE number_you_have REGEXP '^' + prefix
ORDER BY LENGTH(prefix) DESC
LIMIT 1
|