Heim >Datenbank >MySQL-Tutorial >MySQL-Optimierung (4) Indexabdeckung und optimaler Index
Indexabdeckung** Ein sehr wichtiges Konzept ist die Suche im Index! ! !
Wenn die abgefragte Spalte Teil des Index ist, muss die Abfrage nur für die Indexdatei durchgeführt werden und es ist nicht erforderlich, zur Datensuche auf die Festplatte zurückzukehren
Diese Art von Abfrage ist sehr schnell und wird als „Indexabdeckung“ bezeichnet
Nicht gruppierte Indexindexdateien entsprechen dem Zurückspulen von Daten, was Zeit verschwendet
Der Unterschied zwischen Index und Daten
Der Index ist ein effizient organisierter Baum, Knoten, die Suche nach Blattstruktur ist besser als Daten
Der Index kann zur Abfrage in den Speicher importiert werden
Die Datenstruktur des Index selbst ist einfach und lässt sich sehr schnell im Gedächtnis speichern
. . . . . . . . . Infolgedessen war es sofort voll, als ich zurückkam. . . Ich wische. . .
Wenn Sie also zwei Indizes erstellen, index( uid , Aid)
Wenn die gewünschten Daten im Indexbaum abgedeckt sind, wählen Sie beispielsweise uid aus msg, wobei Aid = 1 ist
Der Index deckt alles ab, was Sie nachschlagen möchten, daher ist die Geschwindigkeit und Effizienz beim direkten Abrufen des Index aus dem Speicher sehr hoch, sodass Sie nicht zurückgehen und suchen müssen
Optimaler Index:
Häufig abfragen, unterscheiden Hoher Grad, kleine Länge
Versuchen Sie, gemeinsame Felder abzudecken, ------》Indexabdeckung
Das linke Präfix ist nicht einfach Um zu unterscheiden, kehren Sie die URL um, um den Inhalt zu erhalten. Das linke Präfix ist gut unterscheidbar ein Index für urlcrc anstelle der Indizierung der URL, um eine Indizierung zu vermeiden
Erklären, wie man den Effekt ansieht;
Wenn SQL gespeichert ist, ist crcurl== crc32( url),
Da das Ergebnis von crc eine 32-Bit-Int-Zahl ohne Vorzeichen ist, wenn die Wenn die Datenmenge 4 Milliarden übersteigt, wird es Duplikate geben, aber es lohnt sich
create table t10 ( id int primary key, url char(60) not null default '' );
insert into t10 values (1,'http://www.baidu.com'), (2,'http://www.sina.com'), (3,'http://www.sohu.com.cn'), (4,'http://www.onlinedown.net'), (5,'http://www.gov.cn'); alter table t10 add urlcrc int unsigned not null;
Mehrfachindexdesign
Aber gemessen am tatsächlichen Geschäft des Einkaufszentrums wählen Kunden im Allgemeinen zuerst große Kategorien ->kleine Kategorien-> Marke,
Wählen Sie schließlich (1)index(cat_id,brand_id), + index(cat_id, shop_price), um den Index zu erstellen
Sie können sogar (3)index(cat_id,brand_id,shop_price) ), 3 redundante Indexfelder hinzufügen. . .
Aber die ersten 2 Spalten in (3) sind die gleichen wie die ersten 2 Spalten in (1), dann entfernen Sie (1)
index (cat_id,price) und index(cat_id,brand_id,shop_price); das heißt, das Prinzip des linken Präfixes kann redundant sein, aber nicht wiederholt werden
Das Oben ist die MySQL-Optimierung (4) Indexabdeckung und optimaler Indexinhalt Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!