Heim >Datenbank >MySQL-Tutorial >Einführung in den MySQL-Index
Was ist ein Index?
Ein Index ist eine Datenstruktur, die Daten effizient abruft.
Indextyp
VOLLTEXT, (HASH, BTREE [zwei werden hauptsächlich von MySQL verwendet]), RTREE.
1. FULLTEXT
ist ein Volltextindex, der derzeit nur von der MyISAM-Engine unterstützt wird. Es kann in CREATE TABLE, ALTER TABLE und CREATE INDEX verwendet werden, aber derzeit können nur Volltextindizes für CHAR-, VARCHAR- und TEXT-Spalten erstellt werden.
Der Volltextindex wurde nicht zusammen mit MyISAM entwickelt. Er schien das Problem der geringen Effizienz von Fuzzy-Text-basierten Abfragen wie WHERE name LIKE „%word%“ zu lösen.
(Empfehlung für ein kostenloses Lernvideo-Tutorial: MySQL-Video-Tutorial)
2. Aufgrund der Einzigartigkeit von HASH (fast 100 % einzigartig) und eines ähnlichen Schlüssels Werte Die richtige Form eignet sich zur Verwendung als Index.
Indextyp
Normaler Index: nur beschleunigte AbfrageEinzigartiger Index: beschleunigte Abfrage + eindeutiger Spaltenwert (kann Null haben)Primärschlüsselindex: Abfrage beschleunigen + eindeutiger Spaltenwert (darf nicht Null sein) + nur einer in der TabelleKombinierter Index: Mehrere Spaltenwerte bilden einen Index, der speziell für die kombinierte Suche und seine Effizienz verwendet wird ist größer als die IndexzusammenführungVolltextindex: Textinhalt segmentieren und durchsuchenIndex verwenden
1. Index erstellen1 --创建普通索引CREATE INDEX index_name ON table_name(col_name); 2 --创建唯一索引CREATE UNIQUE INDEX index_name ON table_name(col_name); 3 --创建普通组合索引CREATE INDEX index_name ON table_name(col_name_1,col_name_2); 4 --创建唯一组合索引CREATE UNIQUE INDEX index_name ON table_name(col_name_1,col_name_2);2. Erstellen Sie einen Index, indem Sie die Tabellenstruktur ändern
ALTER TABLE table_name ADD INDEX index_name(col_name);3 Geben Sie den Index direkt beim Erstellen der Tabelle an
CREATE TABLE table_name ( ID INT NOT NULL,col_name VARCHAR (16) NOT NULL,INDEX index_name (col_name) );Löschen Sie den Index
--直接删除索引DROP INDEX index_name ON table_name; --修改表结构删除索引ALTER TABLE table_name DROP INDEX index_name;5. Andere Befehle
- 查看表结构 desc table_name; - 查看生成表的SQL show create table table_name; - 查看索引 show index from table_name; - 查看执行时间 set profiling = 1; SQL... show profiles;
Gründe für Indexfehler
1. 2. Die Nichteinhaltung der optimalen Präfixregel kann ebenfalls zu einem Indexfehler führen. 3. Eine (Berechnung, Funktion, (automatische oder manuelle) Typkonvertierung) für den Index führt dazu, dass der Index fehlschlägt und zu einem vollständigen Tabellenscan führt. 4. MySQL kann den Index nicht verwenden, wenn er ungleich (a8093152e673feb7aba1828c43532094, !=) ist, was zu einem vollständigen Tabellenscan führt. 5. Der Index kann nicht verwendet werden, auch wenn er null ist oder nicht. 6. Die Verwendung eines Platzhalterschalters wie ('%abc') führt zu einem Indexfehler und einem vollständigen Tabellenscan. 7. Der String-Index ohne einfache Anführungszeichen ist ungültig. 8. Verwenden Sie oder weniger, da eine Verbindung mit oder zu einem Indexfehler führt. 9. Verwenden Sie die Abfrage „select*“ und versuchen Sie, den abdeckenden Index zu verwenden.MySQL-Indexspezifikation
1. [Pflichtfeld] Felder mit eindeutigen Merkmalen im Geschäftsleben, auch wenn es sich um eine Kombination mehrerer Felder handelt, müssen in einen eindeutigen Index integriert werden (Hinweis: Denken Sie nicht, dass sich der eindeutige Index auf die Einfügegeschwindigkeit auswirkt. Dieser Geschwindigkeitsverlust kann ignoriert werden, aber die Verbesserung der Suchgeschwindigkeit ist offensichtlich; auch wenn eine sehr vollständige Überprüfungskontrolle durchgeführt wird der Anwendungsschicht, solange es keinen eindeutigen Index gibt, müssen gemäß Murphys Gesetz schmutzige Daten generiert werden) 2. [Obligatorisch] Das Verknüpfen von mehr als drei Tabellen ist verboten. Die Datentypen der zu verknüpfenden Felder müssen absolut konsistent sein; bei der Durchführung von Abfragen mit mehreren Tabellen wird sichergestellt, dass die zugehörigen Felder über Indizes verfügen müssen.Das obige ist der detaillierte Inhalt vonEinführung in den MySQL-Index. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!