Was ist ein Index?Ein Datenbankindex ist eine Datenstruktur, die die Geschwindigkeit von Datenabrufvorgängen in einer Datenbanktabelle erhöht, allerdings auf Kosten zusätzlicher Schreibvorgänge und Speicherplatz. Vereinfacht ausgedrückt ist ein Index vergleichbar mit dem Inhaltsverzeichnis eines Buches und ermöglicht Ihnen, anhand der darin verzeichneten Seitenzahlen schnell den gewünschten Inhalt zu finden. ——Was sind die gängigen Indizes in Wikipedia?
Hier nehmen wir eine relativ komplexe Kombination als Beispiel, um zu zeigen, wie sie optimiert werden kann. Prinzip der Übereinstimmung mit dem äußersten linken PräfixZunächst müssen wir wissen, was das Prinzip der Übereinstimmung des am weitesten links stehenden Präfixes ist. Das Prinzip des ganz links stehenden Präfixabgleichs bedeutet, dass bei Verwendung eines gemeinsamen B+Tree-Index zum Abrufen von Daten der MySQL-Optimierer das Prädikat (Filterbedingung) liest und in der Reihenfolge, in der die gemeinsamen Indexfelder erstellt werden, nach rechts abgleicht, bis eine Bereichsabfrage oder eine ungleiche Abfrage gefunden wird. Die Indexspalten nach diesem Feld werden nicht verwendet. Zu diesem Zeitpunkt kann durch Berechnen So berechnen Sie key_len Die Berechnung Bevor wir
Die Testdatentabelle sieht wie folgt aus: CREATE TABLE `test_table` ( `id` int(11) NICHT NULL AUTO_INCREMENT, `a` int(11) STANDARD NICHT NULL, `b` int(11) STANDARD NICHT NULL, `c` int(11) STANDARD NICHT NULL, Primärschlüssel (`id`), SCHLÜSSEL `test_table_a_b_c_index` (`a`,`b`,`c`) )ENGINE=InnoDB STANDARD-CHARSET=utf8; Trefferindex: mysql> erklären Sie „select * from test_table“, wobei a = 1 und b = 2 und c = 3; +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ | ID | Auswahltyp | Tabelle | Partitionen | Typ | mögliche Schlüssel | Schlüssel | Schlüssellänge | Ref. | Zeilen | gefiltert | Extra | +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ | 1 | SIMPLE | test_table | NULL | ref | test_table_a_b_c_index | test_table_a_b_c_index | 12 | const,const,const | 1 | 100.00 | Index wird verwendet | +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ Sie können sehen, Ob NULL zulässig ist. Wenn NULL zulässig ist, wird ein zusätzliches Byte benötigt, um das Feld zu markieren. Unterschiedliche Datentypen erfordern unterschiedliche Bytegrößen. mysql> ALTER TABLE `test_table` CHANGE `a` `a` INT(11) NULL; mysql> ALTER TABLE `test_table` CHANGE `c` `c` INT(11) NULL; mysql> ALTER TABLE `test_table` CHANGE `b` `b` INT(11) NULL; mysql> erklären Sie „select * from test_table“, wobei a = 1 und b = 2 und c = 3; +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ | ID | Auswahltyp | Tabelle | Partitionen | Typ | mögliche Schlüssel | Schlüssel | Schlüssellänge | Ref. | Zeilen | gefiltert | Extra | +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ | 1 | SIMPLE | test_table | NULL | ref | test_table_a_b_c_index | test_table_a_b_c_index | 15 | const,const,const | 1 | 100.00 | Index wird verwendet | +----+-------------+------------+------------+------+------------------------+---------+---------+-------------------+----------+-------------+ Es ist ersichtlich, dass IndexoptimierungMit diesem Grundwissen können wir die Leistung anhand des tatsächlichen SQL beurteilen. Erstellen Sie anhand der obigen Datentabelle als Beispiel einen gemeinsamen Index für die drei Felder a, b und c.
Wenn beim Anzeigen eines Ausführungsplans in der Spalte „Extra“ der Wert „Index verwenden“ angezeigt wird, bedeutet dies normalerweise, dass der Optimierer einen überdeckenden Index verwendet.
Erstellen einer Indexspezifikation
Oben finden Sie Einzelheiten zum Entwerfen und Optimieren von MySQL-Indizes. Weitere Informationen zum Entwerfen und Optimieren von MySQL-Indizes finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: img usemap Attribut China Karte Link
>>: Flex-Layout realisiert linken Textüberlauf und lässt rechte Textanpassung aus
1. Transaktionsmerkmale (ACID) (1) Atomarität. Di...
Heute habe ich ein Problem in HTML gefunden. Es s...
Über den Unterschied zwischen Gitlab und Github m...
In diesem Artikel wird der spezifische Code der m...
1. Erstellen Sie ein SpringBoot-Projekt und packe...
Die Installationsschritte für CentOS 7.3 werden a...
1. Melden Sie sich bei MySQL an und verwenden Sie...
MySQL-Server hat Problem in PHP behoben 1. Hinter...
Der Grund ist dieser Ich wollte eine Mocker-Platt...
Problembeschreibung Auf der Anmeldeseite des Proj...
Die heruntergeladene Version ist die Zip-Dekompri...
Die Verwendung von Vue + ElementUI Tree dient zu ...
Inhaltsverzeichnis Funktionen auf Blockebene Ände...
In diesem Artikel wird der CSS-Beispielcode vorge...
Es wird eine Liste mit mehreren Bestellungen benö...