Jede langsame SQL-Abfrage hat einen Grund — und EXPLAIN deckt ihn auf. Das MySQL-Kommando zeigt den Ausführungsplan: welche Tabellen in welcher Reihenfolge gelesen werden, welche Indexes MySQL nutzt (oder eben nicht nutzt), wie viele Zeilen geschätzt werden und welche internen Operationen stattfinden. Wer MySQL EXPLAIN lesen kann, findet langsame Queries in Magento-Datenbanken in Minuten statt Stunden. Dieser Artikel erklärt alle relevanten Spalten, zeigt die wichtigsten Signalwörter und führt durch EXPLAIN ANALYZE für echte Messwerte.
Grundlegende EXPLAIN-Syntax
EXPLAIN wird einfach vor eine SELECT-Anweisung gestellt. MySQL führt die Abfrage dabei nicht aus — es zeigt nur, wie es die Query ausführen würde. Das macht MySQL EXPLAIN vollkommen sicher für Produktionsserver.
-- Grundsyntax: EXPLAIN vor die Query stellen
EXPLAIN SELECT e.entity_id, e.sku
FROM catalog_product_entity e
INNER JOIN catalog_product_entity_varchar v
ON v.entity_id = e.entity_id AND v.attribute_id = 73 AND v.store_id