Heim >Datenbank >MySQL-Tutorial >Was ist ein Index?

Was ist ein Index?

藏色散人
藏色散人Original
2019-05-07 10:04:1586878Durchsuche

Ein Index ist eine separate, spezielle Datenbankstruktur, die die Werte einer oder mehrerer Spalten in einer Datenbanktabelle physisch sortiert. Es handelt sich um eine Sammlung von einem oder mehreren Spaltenwerten in einer Tabelle und den entsprechenden Zeiger auf die Tabelle. Eine Liste logischer Zeiger auf der Datenseite, die diese Werte physisch identifiziert. Der Index entspricht dem Inhaltsverzeichnis eines Buches. Anhand der Seitenzahlen im Inhaltsverzeichnis können Sie schnell den gewünschten Inhalt finden.

Was ist ein Index?

(Empfohlenes Tutorial: MySQL-Video-Tutorial )

Index ist eine spezielle Datenbankstruktur, die aus Datentabellen besteht Eine Kombination aus einer oder mehreren Spalten und kann zum schnellen Abfragen von Datensätzen mit einem bestimmten Wert in der Datentabelle verwendet werden.

Indizes stellen Zeiger auf Datenwerte bereit, die in bestimmten Spalten einer Tabelle gespeichert sind, und sortieren diese Zeiger dann entsprechend der von Ihnen angegebenen Sortierreihenfolge. Die Datenbank verwendet einen Index, um einen bestimmten Wert zu finden, und zeigt dann vorwärts, um die Zeile zu finden, die diesen Wert enthält. Dies ermöglicht eine schnellere Ausführung von SQL-Anweisungen, die der Tabelle entsprechen, und ermöglicht einen schnellen Zugriff auf bestimmte Informationen in der Datenbanktabelle.

Über den Index müssen Sie beim Abfragen von Daten nicht alle aufgezeichneten Informationen lesen, sondern nur die Indexspalte abfragen. Andernfalls liest das Datenbanksystem alle Informationen jedes Datensatzes zum Abgleich.

Der Index kann mit der phonetischen Reihenfolge des Xinhua-Wörterbuchs verglichen werden. Wenn Sie beispielsweise das Wort „ku“ nachschlagen möchten und keine Lautfolge verwenden, müssen Sie es Seite für Seite in den 400 Seiten des Wörterbuchs finden. Wenn Sie jedoch das Pinyin extrahieren, um eine phonetische Sequenz zu bilden, müssen Sie es nur direkt in der Phonetiktabelle von mehr als 10 Seiten nachschlagen. Dadurch kann viel Zeit gespart werden.

Daher kann die Verwendung von Indizes die Abfragegeschwindigkeit der Datenbank erheblich verbessern und die Leistung des Datenbanksystems effektiv verbessern.

Warum Indizes verwendet werden?

Der Index ist die Beziehung zwischen den Spaltenwerten und den Datensatzzeilen, die in einer bestimmten Reihenfolge basierend auf einem erstellt werden oder mehrere Spalten in der Tabelle. Die Korrespondenztabelle ist im Wesentlichen eine geordnete Tabelle, die die Eins-zu-eins-Entsprechung zwischen den Spaltenwerten der Indexspalten und den Datensatzzeilen in der Originaltabelle beschreibt.

Index ist ein sehr wichtiges Datenbankobjekt in MySQL. Es ist die Grundlage der Technologie zur Optimierung der Datenbankleistung und wird häufig zum schnellen Abrufen von Daten verwendet.

In MySQL gibt es normalerweise zwei Möglichkeiten, auf Zeilendaten einer Datenbanktabelle zuzugreifen:

1) Sequenzieller Zugriff

Sequentieller Zugriff ist in der Tabelle Führen Sie einen vollständigen Tabellenscan durch und durchlaufen Sie dabei Zeile für Zeile vom Anfang bis zum Ende, bis Sie Zieldaten finden, die die Bedingungen in den ungeordneten Zeilendaten erfüllen.

Sequentieller Zugriff ist relativ einfach zu implementieren, aber wenn die Tabelle eine große Datenmenge enthält, ist die Effizienz sehr gering. Wenn Sie beispielsweise unter mehreren zehn Millionen Daten nach einer kleinen Datenmenge suchen, werden bei Verwendung des sequentiellen Zugriffs alle Daten durchsucht, was viel Zeit in Anspruch nimmt und sich offensichtlich auf die Verarbeitungsleistung der Datenbank auswirkt.

2) Indexzugriff

Der Indexzugriff ist eine Möglichkeit, direkt auf Datensatzzeilen in der Tabelle zuzugreifen, indem der Index durchlaufen wird.

Die Voraussetzung für die Verwendung dieser Methode besteht darin, einen Index für die Tabelle zu erstellen. Nachdem Sie den Index für die Spalte erstellt haben, können Sie bei der Suche nach Daten direkt die Position der entsprechenden Datensatzzeile basierend auf dem Index finden die Spalte, um die Daten schnell zu finden. Der Index speichert Zeiger auf die Datenwerte der angegebenen Spalten und sortiert diese Zeiger gemäß der angegebenen Sortierreihenfolge.

Wenn beispielsweise in der Tabelle mit den grundlegenden Informationen zu Studenten tb_students ein Index basierend auf student_id erstellt wird, erstellt das System eine Zuordnungstabelle von der Indexspalte zum tatsächlichen Datensatz. Wenn der Benutzer die Daten mit student_id 12022 finden muss, findet das System zuerst den Datensatz im Index student_id, dann direkt die Datenzeile über die Zuordnungstabelle und gibt die Datenzeile zurück. Da die Geschwindigkeit beim Scannen von Indizes im Allgemeinen viel höher ist als die Geschwindigkeit beim Scannen tatsächlicher Datenzeilen, kann die Verwendung von Indizes die Effizienz der Datenbank erheblich verbessern.

Kurz gesagt: Ohne die Verwendung eines Index muss MySQL die gesamte Tabelle beginnend mit dem ersten Datensatz lesen, bis die relevanten Zeilen gefunden werden. Je größer die Tabelle, desto länger dauert die Abfrage der Daten. Wenn die abgefragte Spalte in der Tabelle über einen Index verfügt, kann MySQL schnell an einen Ort zum Durchsuchen der Datendatei gelangen, ohne sich alle Daten ansehen zu müssen, was viel Zeit spart.

Vor- und Nachteile von Indizes

Indizes haben ihre offensichtlichen Vorteile und ihre unvermeidlichen Nachteile.

Vorteile

Die Vorteile des Index sind wie folgt:

  • Durch die Erstellung eines eindeutigen Index wird jede Datenzeile in Es kann garantiert werden, dass die Datenbanktabelle eindeutig ist.

  • Kann Indizes für alle MySQL-Spaltentypen festlegen.

  • kann die Datenabfrage erheblich beschleunigen, was der Hauptgrund für die Verwendung von Indizes ist.

  • kann die Verbindung zwischen Tabellen im Hinblick auf das Erreichen der referenziellen Integrität von Daten beschleunigen.

  • Beim Einsatz von Gruppierungs- und Sortierklauseln für die Datenabfrage kann auch die Zeit für die Gruppierung und Sortierung in der Abfrage deutlich verkürzt werden

Nachteile

Erhöhte Indizes haben auch viele Nachteile, vor allem die folgenden:

  • Das Erstellen und Verwalten von Indexgruppen nimmt Zeit in Anspruch, und wenn die Datenmenge zunimmt, Es dauert auch. Die Zeit wird auch zunehmen.

  • Indizes müssen zusätzlich zum von der Datentabelle belegten Datenspeicherplatz auch eine bestimmte Menge an physischem Speicherplatz belegen. Wenn Sie über eine große Anzahl von Indizes verfügen, erreichen die Indexdateien möglicherweise schneller ihre maximale Dateigröße als die Datendateien.

  • Beim Hinzufügen, Löschen und Ändern von Daten in der Tabelle muss der Index dynamisch gepflegt werden, was die Geschwindigkeit der Datenpflege verringert.

Bei der Verwendung von Indizes müssen Sie die Vor- und Nachteile von Indizes berücksichtigen.

Indizes können die Abfragegeschwindigkeit erhöhen, wirken sich jedoch auf die Geschwindigkeit beim Einfügen von Datensätzen aus. Denn beim Einfügen von Datensätzen in eine indizierte Tabelle sortiert das Datenbanksystem nach dem Index, wodurch die Geschwindigkeit beim Einfügen von Datensätzen verringert wird. Die Auswirkungen auf die Geschwindigkeit werden beim Einfügen einer großen Anzahl von Datensätzen deutlicher. In diesem Fall besteht die beste Möglichkeit darin, zuerst den Index in der Tabelle zu löschen, dann die Daten einzufügen und nach Abschluss des Einfügens den Index zu erstellen.

Das obige ist der detaillierte Inhalt vonWas ist ein Index?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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