Я запрашиваю очень большую таблицу (более 3M записей) в MySQL, в которой есть category_id, subcategory_id и zipcode. Почтовый индекс может содержать или не содержать 10 символов в БД.
Цель состоит в том, чтобы получить все элементы кошки / подкатушки с определенным радиусом указанного почтового индекса. У меня есть функция, которая возвращает список из 5-значных почтовых индексов для одного указанного. Этот список затем подается на мой запрос, например ...
SELECT whatever
FROM tblName
WHERE cat_id = 1
AND subcat_id = 5
AND LEFT(zip,5) IN (11111,22222,33333,44444,55555)
У меня есть составной индекс для cat_id, subcat_id и zip, но zip, состоящий из 10 символов, в некоторых случаях может сбрасывать его. Можно ли как-нибудь индексировать ЛЕВЫЙ (zip, 5)?