VorwortIndex Condition Pushdown (ICP) ist eine neue Funktion von MySQL 5.6. Sie kann die Anzahl der Tabellenabfragen reduzieren und die Abrufeffizienz verbessern. MySQL-ArchitekturUm Index-Pushdown zu verstehen, müssen Sie zunächst die Architektur von MySQL verstehen: Das obige Bild stammt aus der offiziellen MySQL-Dokumentation. MySQL wird üblicherweise von oben nach unten in die folgenden Schichten unterteilt:
Die MySQL-Serviceschicht ist für die SQL-Syntaxanalyse, Trigger, Ansichten, integrierte Funktionen, Binärprotokolle, die Generierung von Ausführungsplänen usw. verantwortlich und ruft die Speicher-Engine-Schicht auf, um Daten zu speichern und abzurufen. Das „nach unten“ in „Index Push Down“ bedeutet tatsächlich, dass einige der Aufgaben, die in der Verantwortung der oberen Schicht (Serviceschicht) liegen, zur Verarbeitung an die untere Schicht (Speicher-Engine) übergeben werden. Beispiel für Index-PushdownNehmen Sie an, dass die Daten und die Struktur der Benutzertabelle wie folgt sind:
Erstellen Sie einen gemeinsamen Index (Alter, Geburtstag) und fragen Sie Benutzer ab, die älter als 20 Jahre sind und am 01.03. Geburtstag haben: Wählen Sie * vom Benutzer aus, wobei Alter > 20 und Geburtstag = "03-01" Da das Altersfeld eine Bereichsabfrage verwendet, kann in diesem Fall gemäß dem Prinzip des ganz linken Präfixes nur das Altersfeld für die Bereichsabfrage verwendet werden, das Geburtstagsfeld im Index kann jedoch nicht verwendet werden. Verwenden Sie „explain“, um den Ausführungsplan anzuzeigen: +------+----------+----------+-----------+---------------+---------------+--------+------+------+---------+---------+-----------+---------+-----------------------+ | ID | Auswahltyp | Tabelle | Typ | mögliche Schlüssel | Schlüssel | Schlüssellänge | Ref. | Zeilen | Extra | +------+----------+----------+-----------+---------------+---------------+--------+------+------+---------+---------+-----------+---------+-----------------------+ | 1 | SIMPLE | Benutzer | Bereich | Alter_Geburtstag | Alter_Geburtstag | 4 | NULL | 3 | Indexbedingung wird verwendet | +------+----------+----------+-----------+---------------+---------------+--------+------+------+---------+---------+-----------+---------+-----------------------+ Es ist ersichtlich, dass, obwohl der Index age_birthday verwendet wird, die Indexlänge key_len nur 4 beträgt, was bedeutet, dass nur das Altersfeld des gemeinsamen Index wirksam ist (da das Altersfeld vom Typ int ist und 4 Bytes belegt). Schließlich gibt die Bedingung „Index verwenden“ in der Spalte „Extra“ an, dass diese Abfrage die Index-Pushdown-Optimierung verwendet. So führen Sie die folgenden Schritte ohne Index-Pushdown aus:
Wenn die Index-Pushdown-Optimierung aktiviert ist, lauten die Ausführungsschritte wie folgt:
Nach dem Aktivieren des Index-Pushdowns wird die Where-Bedingung zur Ausführung von der MySQL-Dienstebene auf die Speicher-Engine-Ebene verschoben. Der Vorteil besteht darin, dass die Speicher-Engine basierend auf der ID weniger oft Daten aus der Tabelle liest. Wenn im obigen Beispiel kein Index-Pushdown stattfindet, muss die Tabelle noch zweimal abgefragt werden. Darüber hinaus handelt es sich bei Tabellenabfragen wahrscheinlich um diskrete E/A, was die Datenbankleistung in einigen Fällen erheblich verbessern kann. ZusammenfassenDamit ist dieser Artikel über das einfache Verständnis und die Beispiele von MySQL Index Pushdown (ICP) abgeschlossen. Weitere relevante Inhalte zu MySQL Index Pushdown (ICP) finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Der Implementierungscode des CSS3-Eingabefelds ähnelt dem Animationseffekt der Google-Anmeldung
>>: Mit dem Befehl docker prune können Sie selten genutzte Daten regelmäßig bereinigen.
Bildschirmeinführung Screen ist eine vom GNU-Proj...
Derjenige, der eine neue Verbindung herstellt, en...
Ich habe vor Kurzem einen Tencent-Cloud-Server ge...
Vor kurzem traten bei der Installation von Apache...
Code kopieren Der Code lautet wie folgt: <!DOC...
HTML zum Erreichen eines einfachen ListViews-Effe...
In diesem Artikel finden Sie das Installations-Tu...
Welche Funktion hat dieses Schlüsselattribut? Sch...
1. Maven herunterladen Offizielle Maven-Website: ...
Inhaltsverzeichnis Fertighaus So erstellen Sie ei...
1. Überprüfen Sie die aktuell installierten PHP-P...
In diesem Artikel wird der spezifische Code von j...
Im Allgemeinen wird die Maus als nach oben gericht...
Inhaltsverzeichnis Linux-Netstat-Befehl 1. Detail...
1. Commonjs Commonjs ist ein benutzerdefiniertes ...