Da Indizes die Abfragegeschwindigkeit schnell erhöhen können; wenn keine Indizes verwendet werden, muss MySQL mit dem ersten Datensatz beginnen und dann die gesamte Tabelle lesen, bis die relevanten Zeilen gefunden werden.
Je größer die Tabelle, desto länger dauert es , aber es ist auch nicht ganz so.
Empfohlene Kurse: MySQL-Tutorial
Indizes sind Datenstrukturen
Also Zusätzlich zu den Daten verwaltet das Datenbanksystem auch Datenstrukturen, die bestimmte Suchalgorithmen erfüllen. Diese Datenstrukturen verweisen auf die Daten, sodass erweiterte Suchalgorithmen auf diesen Datenstrukturen implementiert werden können. Diese Datenstruktur ist ein Index.
Analyse der Indexdatenstruktur
Wie ist die Struktur dieses Indexes? Mit anderen Worten: Warum kann diese Struktur die Abrufgeschwindigkeit verbessern?
1. Wenn es keinen Index gibt, müssen Sie bei der Suche nach einem bestimmten Datensatz (z. B. nach name='wish') alle Datensätze durchsuchen, da es keine Garantie dafür gibt, dass es nur einen gibt Wunsch, und Sie müssen sie alle durchsuchen.
2. Wenn ein Index nach Namen erstellt wird, führt MySQL eine Suche in der gesamten Tabelle durch, durchsucht den Namenswert jedes Datensatzes in aufsteigender Reihenfolge und erstellt dann den Index Eintrag (Name und Zeilen-ID), im Indexsegment speichern und abfragen, wenn der Name gewünscht ist. Sie können den entsprechenden Ort direkt finden
3. Das Erstellen eines Index bedeutet nicht unbedingt, dass er automatisch verwendet wird Zählt die Informationen der Tabelle und entscheidet, ob der Index verwendet werden soll. Wenn die Tabelle nur sehr wenige Daten enthält, ist die Geschwindigkeit des vollständigen Tabellenscans bereits hoch.
Beispiel für die Funktionsweise des Index
Es gibt zwei Felder in Tabelle A
id,name
Es sind jetzt 10 Millionen Datenelemente
Anforderung: Fragen Sie die entsprechende ID basierend auf dem Namen ab
Wenn kein Index vorhanden ist, müssen Sie alle Datensätze in der Tabelle abfragen und alle 10 Millionen überprüfen Daten einzeln, sagen Sie langsam oder nicht.
Erstellen Sie nun einen Index basierend auf dem Namen,
Indextabellenstruktur:
id,name,value
wobei Wert die ID von Tabelle A ist, die in einem JSON-Array gespeichert ist (weil es welche geben wird). Es liegt die gleiche Situation vor.
Dann kann der Name gemäß den Sortierregeln sortiert werden, sodass die Position des Namens in der Indextabelle direkt ermittelt werden kann Die ID in Tabelle A kann entnommen werden.
Kurz gesagt: Durch die Erstellung eines Index können Sie direkt auf die Datensätze in Tabelle A zugreifen.
Natürlich ist es schnell. Wenn Sie Tabelle A abfragen möchten, müssen Sie 10 Millionen Daten abfragen. Durch die Einrichtung eines Index wird das Abfragevolumen erheblich reduziert.
Das obige ist der detaillierte Inhalt vonWarum benötigt MySQL eine Indizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!