Вопрос проверяет понимание устройства hash-индексов и их ограничений при выполнении диапазонных запросов.
Hash-индексы работают только на точное совпадение значений. Они не сохраняют порядок ключей, поэтому не могут эффективно обрабатывать запросы вида «больше», «меньше» или «между». Для range-запросов нужны упорядоченные структуры, например B-tree.
Hash-индексы оптимизированы под один конкретный сценарий — быстрый поиск по равенству.
Hash-индекс — это индекс, который сопоставляет ключ хеш-значению и использует его для быстрого поиска по точному совпадению.
вычисляется хеш от значения,
по хешу выбирается бакет,
внутри бакета ищется точное значение.
порядок значений не сохраняется,
невозможно перейти к «следующему» ключу,
диапазон требует проверки всех бакетов.
SELECT * FROM orders WHERE amount BETWEEN 100 AND 200;
Для такого запроса hash-индекс бесполезен.
B-tree индексы,
упорядоченные структуры данных.
Hash-индексы не подходят для range-запросов, потому что не поддерживают порядок значений и работают только с операциями равенства.