Здравствуйте, Didi, Вы писали:
Мда, вам не повезло...

Вот к примеру народ
тоже страдает.
В общем случае да, будет перелопачена часть индекса или вообще вся таблица. Проблема вот в чем. Допустим в вашей таблице миллион записей и field1 содержит все числа от 1 до 1 млн. А теперь допустим вы ищете const = 500000. Произойдет то, что в лучшем случае серверу придеться перелопатить 500000 записей в индексе, если он селективный, в худшем сделать полный table scan. И это будет самое лучшее, что можно придумать.
Но, безвыходных ситуаций нет!

Подумайте какие еще условия у вас есть для field1/field2. К примеру, если вы знаете, что max(field2-field1) меньше относительно небольшой константы (назовем ее max_len), то можете добавить условие
SELECT * FROM Table WHERE field1 <= const AND field1 >= const — max_len AND const <= field2
может значительно ускорить выборку.
У меня была задача поиска по отрезкам IP адресов в многомиллионной таблице. Этот поход сработал на ура. В вашем может быть еще что-нибудь.
D>Народ, есть ли способы помочь серверу выполнить запрос:
D>SELECT * FROM Table WHERE field1 <= const AND const <= field2
D>field1, field2 — поля таблицы типа INT
D>field1 <= field2 или это всегда перебор всех записей в таблице?