MySQL-Indizes und Reihenfolge
Das ist eine Frage, die ich schon immer hatte.
Soweit ich weiß, ist die Reihenfolge der Indizes wichtig. Also ein Index wie[first_name, last_name]
ist nicht dasselbe wie[last_name, first_name]
, Recht?
Wenn ich nur den ersten Index definiere, bedeutet das, dass er nur für verwendet wird
SELECT * FROM table WHERE first_name="john" AND last_name="doe";
und nicht für
SELECT * FROM table WHERE last_name="doe" AND first_name="john";
Da ich ein ORM verwende, habe ich keine Ahnung, in welcher Reihenfolge diese Spalten aufgerufen werden. Bedeutet das, dass ich für alle Permutationen Indizes hinzufügen muss? Das ist machbar, wenn ich einen 2-Spalten-Index habe, aber was passiert, wenn mein Index 3 oder 4 Spalten enthält?