Hinweis: Ich habe gesucht, um zu sehen, ob diese Frage schon einmal gestellt wurde. Alle vorhandenen Fragen, die ich finden konnte, fragen nach einer zusammengesetzten Indexreihenfolge oder nach der Reihenfolge von Spalten für Abfragen in einer vorhandenen Tabelle.Ist die Reihenfolge der KEYs in einer CREATE TABLE-Anweisung wichtig?
sagen, dass ich die folgende Tabelle haben:
CREATE TABLE `foobar` (
`foo_id` int(11),
`bar_id` int(11),
KEY `foo_id` (`foo_id`),
KEY `bar_id` (`bar_id`)
);
Es verfügt über zwei unabhängige Indizes darauf. Wenn ich die Definition der beiden Indizes tauschen, könnte es so aussehen:
CREATE TABLE `foobar` (
`foo_id` int(11),
`bar_id` int(11),
KEY `bar_id` (`bar_id`),
KEY `foo_id` (`foo_id`)
);
Wenn ich SHOW CREATE TABLE foobar
auf jedem von diesen laufen kann ich sehen, dass es einen Unterschied zwischen der Reihenfolge der für jede Tabelle KEY
s ist. Meine Frage ist, ist die Reihenfolge in diesem speziellen Fall wichtig? Ich weiß, es wäre wichtig, wenn und bar_id
zusammen in einem zusammengesetzten Index verwendet werden, aber hier sind sie nicht.
Wenn es wirklich wichtig ist, gibt es eine Möglichkeit, die Schlüssel beliebig neu anzuordnen, sobald die Tabelle erstellt wurde? (Etwas ähnlich wie ALTER TABLE foobar ADD INDEX foo_id (foo_id) AFTER bar_id
, das ich ziemlich sicher bin, ist ungültig, wie geschrieben.)
Ich versuche nicht, die _columns_ neu zu ordnen, ich frage mich, ob die Reihenfolge der _indexes_ zählt und wie sie neu anordnen, wenn ja. – smitelli
Ich konnte deine Frage nicht verstehen. Jetzt suche ich das auch. –