У меня есть следующая таблица Innodb с ~ 2.500.000 строк:
ID | param1 | param2 | param3 | param4 | sort_field1 | sort_field2 | sort_field3 | sort_field4
ID - int, PK
param1-4 - tinyint(1), INDEX (it has only 0 OR 1 value)
sort_field1-4 - int, INDEX (it could be any number in INT range)
Каждый параметр (1-4) имеет распределение значений около 40% от 0 и 60 % 1.
Я пытаюсь оптимизировать выборку строк из середины таблицы в этом супер простом запросе:
SELECT id FROM table WHERE param1=0 ORDER BY sort_field1 LIMIT 1000000,10
Потребовалось около 1.7se c, чтобы получить 10 строки и EXPLAIN показывают, что используется только индекс param1.
Я могу создать индекс (param1, sort_field1), и это сократит время до 0,17se c, но я не могу создать индексы для каждого и каждого комбинация params и sort_field.
Можно ли оптимизировать этот запрос и / или таблицу для достижения времени, аналогичного тому, которое я получил с комбинированным индексом?