Es wäre nicht sehr sinnvoll, einen Index nur für enabled
allein. Es könnte jedoch sinnvoll sein, einen zusammengesetzten Index zu erstellen, in dem enabled
enthalten ist, um Folgendes zu erreichen ORDER BY Optimierung .
Wenn zum Beispiel so etwas eine häufige Anfrage wäre:
SELECT * FROM things WHERE c1='foo' AND enabled=1 ORDER BY c2
Ein Index über c1
würde es ermöglichen, die übereinstimmenden Zeilen schnell zu finden, aber es müsste immer noch in einem separaten Schritt sortiert werden, indem c2
.
Ein Index über c1, c2
sollte es ermöglichen, die Sortierung vom Index aus vorzunehmen, was die Abfragesortierung erheblich beschleunigen würde, aber das Fehlen von enabled
im Index würde das vereiteln, weil es die Liste der übereinstimmenden Zeilen kompilieren müsste, die durch c1
, dann jede Zeile scannen, um zu prüfen, ob sie enabled
vor der Sortierung der Ergebnisse nach c2
.
Wäre der Index enabled, c1, c2
o c1, enabled, c2
können die gesamte WHERE-Bedingung und das ORDERing direkt aus dem Index übernommen werden, was zu schnelleren Ergebnissen führt.
Wie immer hängt es davon ab, welche Abfragen Sie machen; Sie sollten EXPLAIN Ihre häufigsten Abfragen, um sicherzugehen, was es tut.