1. Das Prinzip der Index-Push-Down-OptimierungWerfen wir zunächst einen kurzen Blick auf die allgemeine Architektur von MySQL: Die MySQL-Serviceschicht ist für die SQL-Syntaxanalyse, die Generierung von Ausführungsplänen usw. und den Aufruf der Speicher-Engine-Schicht zum Speichern und Abrufen von Daten verantwortlich. Das Pushdown des Schauen wir uns die MySQL-Abfrage ohne Verwendung von ICP genauer an:
Bei Verwendung von ICP läuft die Abfrage wie folgt ab:
2. Spezifische Praxis des Index-PushdownsDie Theorie ist ziemlich abstrakt, also lasst uns sie in die Praxis umsetzen. Verwenden Sie eine Benutzertabelle „ Wenn jetzt eine Anforderung besteht: Rufen Sie alle Benutzer in der Tabelle ab, deren Vorname Zhang ist und die 10 Jahre alt sind. Die SQL-Anweisung wird dann folgendermaßen geschrieben: Wählen Sie * aus dem Benutzer, wobei der Name beispielsweise „张%“ und das Alter 10 ist. Wenn Sie das Prinzip der ganz links stehenden Übereinstimmung des Index verstehen, wissen Sie, dass diese Anweisung nur beim Durchsuchen des Indexbaums verwendet werden kann und die ID des ersten Datensatzes, der die Bedingungen erfüllt, 1 ist. Was sind also die nächsten Schritte? 1. ICP nicht verwenden Vor Schauen wir uns das schematische Diagramm an: Es ist ersichtlich, dass die Tabelle zweimal zurückgegeben werden muss, wodurch das andere 2. Verwenden Sie ICP Nach Schauen wir uns das schematische Diagramm an: Sie können sehen, dass die Tabelle nur einmal zurückgegeben wurde. Darüber hinaus können wir uns auch den Ausführungsplan ansehen und in +----+----------+-------+------------+-------+---------------+---------------+-----------+-----------+----------+----------+------+----------+----------+----------+-----------+---------------------------+ | ID | Auswahltyp | Tabelle | Partitionen | Typ | mögliche Schlüssel | Schlüssel | Schlüssellänge | Ref. | Zeilen | gefiltert | Extra | +----+----------+-------+------------+-------+---------------+---------------+-----------+-----------+----------+----------+------+----------+----------+----------+-----------+---------------------------+ | 1 | SIMPLE | tuser | NULL | Bereich | na_index | na_index | 102 | NULL | 2 | 25.00 | Indexbedingung wird verwendet | +----+----------+-------+------------+-------+---------------+---------------+-----------+-----------+----------+----------+------+----------+----------+----------+-----------+---------------------------+ 3. Nutzungsbedingungen für Index-Pushdowns
Relevante Systemparameter: Das Pushdown der Indexbedingung ist standardmäßig aktiviert und Sie können den Systemparameter optimizer_switch verwenden, um zu steuern, ob es aktiviert ist. Zeigen Sie den Standardstatus an: mysql> wähle @@optimizer_switch\G; *************************** 1. Reihe *************************** @@optimizer_switch: index_merge=ein,index_merge_union=ein,index_merge_sort_union=ein,index_merge_intersection=ein,engine_condition_pushdown=ein,index_condition_pushdown=ein,mrr=ein,mrr_cost_based=ein,block_nested_loop=ein,batched_key_access=aus,materialization=ein,semijoin=ein,loosescan=ein,firstmatch=ein,duplicateweedout=ein,subquery_materialization_cost_based=ein,use_index_extensions=ein,condition_fanout_filter=ein,derived_merge=ein 1 Zeile im Satz (0,00 Sek.) Zustand umschalten: setze optimizer_switch="index_condition_pushdown=off"; setze optimizer_switch="index_condition_pushdown=on"; Dies ist das Ende dieses Artikels zum Verständnis von MySQL Index Pushdown in wenigen Minuten. Weitere relevante MySQL Index Pushdown-Inhalte finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Responsive Webdesign lernen (1) - Bildschirmgrösse und prozentuale Nutzung bestimmen
>>: Beispielcode für die programmgesteuerte Verarbeitung von CSS-Stilen
1. Langsame Abfrage aufgrund fehlenden oder ungül...
So fügen Sie ein <script>-Skript in HTML ein...
In unserem Leben, bei der Arbeit und beim Studium ...
Manchmal kann das Thema eines Projekts nicht jede...
Ich bin vor ein paar Tagen mit dem Bus zur Arbeit...
Inhaltsverzeichnis Einleitung Nginx-Dockerdatei N...
Inhaltsverzeichnis Vorwort WebSocket verwenden Er...
Inhaltsverzeichnis 1. Die Schreibreihenfolge eine...
Inhaltsverzeichnis 1. Geben Sie einen Wert ein un...
Parallelitätsfunktionen Zeit für i in `grep serve...
Inhaltsverzeichnis Problembeschreibung Historisch...
Mysql Workbench ist ein Open-Source-Datenbankclie...
In diesem Artikel wird hauptsächlich die einfache...
Ich denke, Editoren lassen sich in zwei Kategorie...
In diesem Artikelbeispiel wird der spezifische Co...