Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wird der Index in MySQL verwendet?

WBOY
Freigeben: 2022-05-27 15:43:06
Original
6573 Leute haben es durchsucht

Es gibt zwei Fälle, in denen in in MySQL verwendet wird: 1. Wenn der Wertebereich von in klein ist, wird in den Index verwendet. 2. Wenn der Wertebereich von in groß ist, wird in nicht den Index verwenden. Es wird jedoch der vollständige Tabellenscan verwendet. Denn wenn zu viele Bedingungen vorhanden sind, werden viele Daten zurückgegeben, was zu einem Speicherüberlauf im Anwendungsheap und zu Indexfehlern führen kann.

Wird der Index in MySQL verwendet?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Wird der Index in MySQL verwendet?

Schlussfolgerung: IN wird definitiv den Index verwenden, aber wenn der Wertebereich von IN groß ist, führt dies zu einem Indexfehler und es wird ein vollständiger Tabellenscan verwendet.

Das Navicat-Visualisierungstool verwendet die Erklärungsfunktion So zeigen Sie SQL-Ausführungsinformationen an

Szenario 1: Wenn der Wert in IN nur einen Primärschlüssel hat

Wird der Index in MySQL verwendet?

Wir müssen nur auf die wichtigsten Typinformationen achten. Es ist offensichtlich, ob der Index verwendet wird:

Der Typ-Ergebniswert ist in der Reihenfolge:

system > alle: vollständiger Tabellenscan

Index: eine andere Form des vollständigen Tabellenscans, mit der Ausnahme, dass seine Scanmethode in der Reihenfolge des Index ist

Bereich: ein Bereichsindexscan, der im Vergleich zum vollständigen Tabellenscan des Index einen Bereich hat Einschränkungen, also besser als index

ref: Die Suchbedingungsspalte verwendet einen Index und ist nicht der Primärschlüssel oder eindeutig. Tatsächlich bedeutet dies, dass, obwohl ein Index verwendet wird, der Wert der Indexspalte nicht eindeutig ist und es Duplikate gibt. Selbst wenn das erste Datenelement mithilfe des Index schnell gefunden wird, kann es auf diese Weise nicht angehalten werden und muss einen kleinen Bereich in der Nähe des Zielwerts scannen. Der Vorteil besteht jedoch darin, dass nicht die gesamte Tabelle gescannt werden muss, da der Index geordnet ist und selbst bei doppelten Werten nur ein sehr kleiner Bereich gescannt wird.

const: Wenn ein Primärschlüssel nach where als bedingte Abfrage platziert wird, kann der MySQL-Optimierer normalerweise die Abfrage optimieren und in eine Konstante umwandeln. Wie und wann die Konvertierung erfolgen soll, hängt vom Optimierer ab. Im Allgemeinen muss sichergestellt werden, dass die Abfrage mindestens die Bereichsebene erreicht, vorzugsweise ref. Wenn Index und alle im Typ angezeigt werden, bedeutet dies, dass eine vollständige Tabelle vorliegt Der Scan wird ohne Indizierung durchgeführt. Die Effizienz ist gering. Zu diesem Zeitpunkt muss SQL optimiert werden.

Wenn Extra Dateien verwenden oder Temporär verwenden angezeigt wird, bedeutet dies, dass der Index nicht verwendet werden kann und die Optimierung so schnell wie möglich durchgeführt werden muss.

possible_keys: Der von SQL verwendete Index

key: Zeigt den Schlüssel (Index) an, den MySQL tatsächlich verwenden möchte. Wenn kein Index ausgewählt ist, ist der Schlüssel NULL

rows: Zeigt die Anzahl der Zeilen an, die MySQL bei der Ausführung der Abfrage untersuchen muss.

Szenario 2: Erweitern Sie den Wertebereich in IN

Der Index wird zu diesem Zeitpunkt noch verwendet, aber die Effizienz ist verringert

Wird der Index in MySQL verwendet?Szenario 3: Erweitern Sie den Wertebereich von IN weiter

Schauen Sie sich an Im Bild oben wurde festgestellt, dass derzeit kein Index vorhanden ist, sondern ein vollständiger Tabellenscan.

Wird der Index in MySQL verwendet?Lassen Sie uns über die Schlussfolgerung sprechen

Schlussfolgerung: IN wird definitiv den Index verwenden, aber wenn der Wertebereich von IN groß ist, führt dies dazu, dass der Index fehlschlägt und der vollständige Tabellenscan verwendet wird.

Übrigens: Wenn not in verwendet wird, wird der Index nicht verwendet.

Empfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWird der Index in MySQL verwendet?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!