Schnellere Subqueries in MariaDB 5.3

Bei der jetzt veröffentlichten Produktivversion 5.3 des MySQL-Ablegers MariaDB haben die Entwickler sich auf Verbesserungen des Optimierers konzentriert. So sollen nun insbesondere Subqueries schneller ausgeführt werden.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen
Lesezeit: 1 Min.
Von
  • Christian Kirsch

Im Vordergrund der Entwicklung von MariaDB 5.3 stand das Tempo. So haben sich die Entwickler des freien Clones von Oracles Datenbanksystem MySQL darauf konzentriert, den Query-Optimizer zu verbessern. Jetzt haben sie die Software für den Produktiveinsatz freigegeben.

Ein Schwerpunkt dabei sind Subqueries. So soll MariaDB Semi-Joins jetzt schneller ausführen, die bei bestimmten IN-Klauseln auftreten. Eine Strategie dabei ist der Abbruch einer Teilsuche nach dem ersten Treffer, ein anderer das Umschreiben in einen echten JOIN. Handelt es sich nicht um einen Semi-Join, nutzt der Optimierer andere Verfahren. Dazu gehören das Erzeugen einer temporären Tabelle für eine von der Hauptabfrage unabhängige (non-correlated) Subquery und ein Verfahren aus MariaDB 5.2 und MySQL 5.1/5.5 , das IN- in EXISTS-Bedingungen überführt. Ein eigener Cache soll zudem gewährleisten, dass Subqueries so selten wie möglich wiederholt ausgeführt werden.

Der Code von MariaDB 5.3 stammt im Wesentlichen aus MySQL 5.1 und 5.5. Einiges wurde auch aus MySQL 6 entnommen, das nie erschienen ist.

Siehe dazu auch:

  • MariaDB im heise-Softwareverzeichnis

(ck)