In diesem Artikel wird hauptsächlich beschrieben, wie die MySQL-Indexanalyse und Optimierung dynamischer Websites beschleunigt werden kann. iSH China Tutorial Online
1. Was ist ein Index? Der iSH China Tutorial Online
Index dient zum schnellen Auffinden von Datensätzen mit bestimmten Werten. Alle MySQL-Indizes werden in Form von B-Bäumen gespeichert. Wenn kein Index vorhanden ist, muss MySQL beim Ausführen einer Abfrage alle Datensätze in der gesamten Tabelle beginnend mit dem ersten Datensatz scannen, bis ein Datensatz gefunden wird, der die Anforderungen erfüllt. Je größer die Anzahl der Datensätze in der Tabelle ist, desto höher sind die Kosten für diesen Vorgang. Wenn ein Index für die als Suchbedingung verwendete Spalte erstellt wurde, kann MySQL schnell den Speicherort des Zieldatensatzes ermitteln, ohne Datensätze scannen zu müssen. Wenn die Tabelle 1000 Datensätze enthält, ist das Auffinden der Datensätze über den Index mindestens 100-mal schneller als das sequentielle Durchsuchen der Datensätze.
Angenommen, wir erstellen eine Tabelle mit dem Namen „people“: iSH Chinese Tutorial Online
CREATE
TABLE people ( peopleid SMALLINT NOT NULL, iSH Chinese Tutorial Online
name CHAR(50) NOT NULL );
Dann fügen wir völlig zufällig 1000 ein verschiedene Namenswerte in die Personentabelle. Die Namensspalten haben in der Datendatei keine explizite Reihenfolge. Wenn wir einen Index für die Namensspalte erstellen, sortiert MySQL die Namensspalte im Index. Für jedes Element im Index speichert MySQL intern einen „Zeiger“ auf den tatsächlichen Speicherort des Datensatzes in der Datendatei. Wenn wir also die Personen-ID des Datensatzes finden möchten, dessen Name gleich „Mike“ ist (der SQL-Befehl lautet „SELECT peopleid FROM people WHERE name='Mike';“), kann MySQL den Wert „Mike“ finden im Index des Namens und gehen Sie dann direkt zu Die entsprechende Zeile in der Datendatei gibt genau die Personen-ID (999) dieser Zeile zurück. Während dieses Vorgangs muss MySQL nur eine Zeile verarbeiten, um das Ergebnis zurückzugeben. Wenn in der Spalte „Name“ kein Index vorhanden ist, scannt MySQL alle Datensätze in der Datendatei, also 1.000 Datensätze! Offensichtlich kann die Aufgabe umso schneller erledigt werden, je kleiner die Anzahl der Datensätze ist, die MySQL verarbeiten muss. iSH Chinese Tutorial Online
2. Indextypen iSH Chinese Tutorial Online
MySQL bietet eine Vielzahl von Indextypen zur Auswahl: iSH Chinese Tutorial Online
gewöhnlicher Index: iSH Chinese Tutorial Online
Dies ist der einfachste Indextyp und unterliegt keinen Einschränkungen wie Eindeutigkeit . . Gewöhnliche Indizes können auf folgende Weise erstellt werden: Das iSH-Chinesisch-Online-Tutorial
erstellt einen Index, z. B. CREATE INDEX <Indexname> ON Tabellenname (Spaltenliste); das iSH-Chinesisch-Online-Tutorial
ändert die Tabelle, z. B. ALTER TABLE Tabellenname ADD INDEX [Indexname] (Spaltenliste); iSH Chinese Tutorial Online
Geben Sie den Index beim Erstellen einer Tabelle an, z. B. CREATE TABLE Tabellenname ([...], INDEX [Indexname] (Spaltenliste));
Eindeutiger Index
des chinesischen Online-Tutorials
: iSH Chinese Tutorial OnlineDiese Art von Index ist im Wesentlichen mit dem vorherigen „normalen Index“ identisch, es gibt jedoch einen Unterschied: Alle Werte in der Indexspalte können nur einmal erscheinen, das heißt, sie müssen einzigartig sein. Eindeutige Indizes können auf folgende Weise erstellt werden: iSH-Chinesisch-Online-Tutorials
zum Erstellen von Indizes, z. B. CREATE UNIQUE INDEX <Indexname> ON Tabellenname (Spaltenliste); iSH-Chinesisch-Online-Tutorials
zum Ändern von Tabellen, z. B. ALTER TABLE Tabellenname ADD UNIQUE [Index Name] (Liste der Spalten); iSH Chinese Tutorial Online
Geben Sie den Index an, wenn Sie eine Tabelle erstellen, zum Beispiel CREATE TABLE tablename ([...], UNIQUE [Name des Index] (Liste der Spalten));
Primärschlüssel: iSH Chinese Tutorial Online
Der Primärschlüssel ist ein eindeutiger Index, muss jedoch als „PRIMARY KEY“ angegeben werden. Wenn Sie jemals Spalten vom Typ AUTO_INCREMENT verwendet haben, sind Sie möglicherweise bereits mit Konzepten wie Primärschlüsseln vertraut. Der Primärschlüssel wird im Allgemeinen beim Erstellen der Tabelle angegeben, z. B. „CREATE TABLE Tabellenname ([...], PRIMARY KEY (Liste der Spalten));“. Wir können jedoch auch Primärschlüssel hinzufügen, indem wir die Tabelle ändern, z. B. „ALTER TABLE Tabellenname ADD PRIMARY KEY (Liste der Spalten);“. Jede Tabelle kann nur einen Primärschlüssel haben. iSH Chinese Tutorial Online
-Volltextindex: iSH Chinese Tutorial Online
MySQL unterstützt Volltextindizierung und Volltextsuche ab Version 3.23.23. In MySQL ist der Indextyp des Volltextindex FULLTEXT. Volltextindizes können für Spalten vom Typ VARCHAR oder TEXT erstellt werden. Es kann mit dem Befehl CREATE TABLE oder mit dem Befehl ALTER TABLE oder CREATE INDEX erstellt werden. Bei großen Datensätzen ist das Erstellen eines Volltextindexes mit dem Befehl ALTER TABLE (oder CREATE INDEX) schneller als das Einfügen von Datensätzen in eine leere Tabelle mit einem Volltextindex.