Я пытался найти похожие вопросы, но не нашел ни одного, кроме вопросов, касающихся двух индексов для одного столбца (в целом).
Предположим, у нас есть таблица со столбцом COL
. Таблица (и вся база данных) доступна только для чтения для клиентов (предположим, что она обновляется один раз / раз каждые длительные периоды времени и только бэкэнд-сервисом). Поэтому время вставки / обновления не имеет значения.
Для этого столбца есть часто используемые запросы, которые ищут строки, в которых значение COL
находится в некотором диапазоне, и некоторые более часто используемые запросы, которые ищут строки, где COL
сравнивается непосредственно со значением (проверка на равенство ).
Полезно ли, учитывая вышесказанное, держать индексы BTREE
и HASH
на COL
? Будет ли оптимизатор использовать индекс BTREE
для запросов диапазона и индекс HASH
для запросов прямого сравнения?
Изменится ли ответ, если COL
имеет тип varchar(256)
?
Спасибо!