Cheatah: [MySQL] 25-minütige SELECT-Abfrage mit 2 Tabellen beschleunigen?

Beitrag lesen

Hi,

Hi,

nebenbei: Es wäre nett, wenn Du die zitierten Texte auf das kürzen würdest, auf das Du Dich beziehst.

Wenn ich Google richtig verstehe, werden die indizierten Spalten schon bei der Indexierung so aufbereitet, dass die Suchanfragen schneller abgearbeitet werden. Wenn ein neuer Datensatz hinzugefügt wird, wird der Index automatisch angepasst. Ich kann nahezu beliebig viele Spalten indizieren. Ich habe durch die Indizierung außer dem erhöhten Speicherbedarf keine Nachteile.

Ist das soweit korrekt?

Ja, auch wenn es durchaus weitere Nachteile gibt. Jeder Index kostet Zeit bei UPDATE-, INSERT- und DELETE-Statements, und durch die komplexere Art und Weise der Datensuche geht auf andere Weise Zeit ins Land. Ich habe ja bereits Fälle angedeutet, in denen der Verzicht auf einen Index von Vorteil ist; und Ilja mahnt nicht zu Unrecht zu mehr Weitsicht. Soweit ich Deine Daten bisher aber verstehe, ist mindestens ein gut gewählter Index pro Tabelle uneingeschränkt empfehlenswert.

Ich hab meine Datenbanken jetzt wie folgt angepasst:

Zu weit gegriffen. Indexe gehören zum DB-Layout *genau wie die Statements*. Sie müssen allesamt aufeinander abgestimmt sein. Lege also genau die Indexe an, die Du benötigst; bei einer Erweiterung des DB-Layouts (beispielsweise einer neuen Abfrage) musst Du die Indexe neu bewerten. Ziehe insbesondere in Betracht, dass jeder _einzelne_ Index über mehrere Spalten gehen kann.

In der ersten Spalte steht jetzt immernoch type ALL.
Sollte das jetzt noch weg und wenn ja, irgendwelche Ideen wie das geht?

Deine Abfrage über die Tabelle s betrachtet die Spalte s.oid_r. Belege diese mit einem Index.

Cheatah

--
X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
X-Will-Answer-Email: No
X-Please-Search-Archive-First: Absolutely Yes