Было бы бесполезно создавать индекс только на enabled
. Но может быть полезно создать составной индекс, в который включен enabled
, чтобы добиться оптимизации ORDER BY .
Например, если что-то подобное было общим запросом:
SELECT * FROM things WHERE c1='foo' AND enabled=1 ORDER BY c2
Индекс на c1
позволит быстро найти совпадающие строки, но его все равно придется отсортировать на отдельном шаге, используя c2
.
Индекс на c1, c2
должен позволять выполнять упорядочение по индексу, что значительно ускоряет сортировку запросов, но отсутствие enabled
в индексе побеждает это, потому что придется компилировать список совпадающих строк, проиндексированных с помощью c1
, , затем сканирует каждую строку, чтобы проверить ее enabled
перед сортировкой результатов по c2
.
Если индекс был enabled, c1, c2
или c1, enabled, c2
, все условие WHERE и ORDERing можно было взять непосредственно из индекса, что обеспечило бы более быстрые результаты.
Как всегда, это будет зависеть от того, какие запросы вы делаете; Вы должны ОБЪЯСНИТЬ свои наиболее распространенные запросы, чтобы убедиться, что они делают.