:: DEVELOPER ZONE
Wenn Sie ein langsames SELECT ... WHERE schneller machen wollen, ist
im Allgemeinen das erste, was zu prüfen ist, ob Sie einen Index hinzufügen
können oder nicht. See Abschnitt 6.4.3, „Wie MySQL Indexe benutzt“. Alle Verweise
(Reference) zwischen verschiedenen Tabellen sollten üblicherweise mit
Indexen gemacht werden. Sie können den EXPLAIN-Befehl benutzen, um
herauszufinden, welche Indexe für ein SELECT benutzt werden.
See Abschnitt 6.2.1, „EXPLAIN-Syntax (Informationen über ein SELECT erhalten)“.
Einige allgemeine Tipps:
Um MySQL zu helfen, Anfragen besser zu optimieren, lassen Sie
myisamchk --analyze auf eine Tabelle laufen, nachdem sie mit
relevanten Daten gefüllt wurde. Das aktualisiert einen Wert für jeden
Index-Teil, der die durchschnittliche Anzahl von Zeilen angibt, die
denselben Wert haben. (Bei eindeutigen Indexen ist das natürlich immer 1).
MySQL benutzt diesen Wert, um zu entscheiden, welcher Index benutzt werden
soll, wenn Sie zwei Tabellen mit einem 'nicht konstanten Ausdruck'
verbinden. Sie können das Ergebnis nach dem Laufenlassen von analyze
mit SHOW INDEX FROM tabelle überprüfen und die
Cardinality-Spalte untersuchen.
Um einen Index und Daten gemäß einem Index zu sortieren, benutzen Sie
myisamchk --sort-index --sort-records=1 (wenn Sie nach Index 1
sortieren wollen). Wenn Sie einen eindeutigen Index haben, von dem Sie alle
Datensätze gemäß der Reihenfolge dieses Indexes lesen wollen, ist das eine
gute Art, das schneller zu machen. Beachten Sie jedoch, dieses Sortieren
nicht optimal geschrieben wird und bei einer großen Tabelle lange dauert!
© 1995-2005 MySQL AB. All rights reserved.
