Skip to content

MariaDB

Der Query Planer von MariaDB ist recht einfach zu verstehen. Eine ausführliche Beschreibung findest du in den Dokumentationen von MariaDB.

Wir beginnen mit unserer Grundabfrage von vorhin:

EXPLAIN
SELECT *
FROM player
WHERE id = 5;

Dies gibt zurück:

id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE player ALL null null null null 10 Using where

Beginnen wir mit den einzelnen Spalten und schauen wir uns an, was sie eigentlich bedeuten:

  • id -> Die Reihenfolge, wenn du mehrere Tabellen kombinierst (Das haben wir noch nicht gemacht)
  • select_type -> Die Herkunft der ausgewählten Daten. Es gibt verschiedene Typen wie einfache oder Selects auf den Schlüssel PRIMARY. Diese werden wir noch öfter sehen.
  • table -> die Tabelle, aus der wir ausgewählt haben. In unserem Fall die Tabelle player.
  • Typ -> Das ist wahrscheinlich unsere wichtigste Spalte. In dieser Spalte steht derzeit "all", was bedeutet, dass wir alle Zeilen der Tabelle. Ideal wäre so etwas wie index oder range, was eine Verkürzung der Laufzeit bedeutet.
  • possible_keys zeigt die Namen der Schlüssel in der Tabelle an, aus der wir lesen.
  • key -> Der tatsächlich verwendete Schlüssel für unsere Abfrage.
  • key_len -> die Länge des verwendeten Schlüssels, wenn wir mehrspaltige Schlüssel verwenden
  • ref -> Die Referenz des Schlüsselwertes
  • rows -> Eine Schätzung, wie viele Zeilen wir erwarten können.
  • Extra -> einige zusätzliche Informationen. In unserem Fall sagt es uns, dass wir nach einer Where-Klausel suchen

Analysieren

Mit dem Schlüsselwort ANALYZE kannst du dir außerdem einen Überblick über die tatsächlichen Vorgänge verschaffen. Damit wird die Abfrage ausgeführt und der Planungsweg wird zurückgegeben:

ANALYZE
SELECT *
FROM player
WHERE id = 5;

Ergebnisse in:

id select_type table type possible_keys key key_len ref rows r_rows filtered r_filtered Extra
1 EINFACH player ALL null null null null 10 10.00 100 10 Mit wo

Zusätzlich zu den vorherigen Schätzungen zeigen die Spalten mit dem Präfix r_ die tatsächlichen Werte an.