Heim > Datenbank > MySQL-Tutorial > Warum benötigt MySQL eine Indizierung?

Warum benötigt MySQL eine Indizierung?

(*-*)浩
Freigeben: 2020-09-17 09:32:52
Original
4679 Leute haben es durchsucht

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

Warum benötigt MySQL eine Indizierung?

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
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage