MySQL-Abfrage ohne Verwendung der Indexaggregation Wie wir alle wissen, ist das Hinzufügen von Indizes eine effektive Methode, um die Abfragegeschwindigkeit zu verbessern. In vielen Fällen verwenden Abfragen jedoch auch nach dem Hinzufügen von Indizes immer noch keine Indizes, was die Leistung erheblich beeinträchtigt. Hier sind einige einfache Beispiele dafür, dass MySQL keine Indizes verwendet. Wenn MySQL schätzt, dass die Verwendung eines Indexes langsamer wäre als ein vollständiger Tabellenscan, wird der Index nicht verwendet. Wenn der Spaltenschlüssel beispielsweise gleichmäßig Wenn Sie eine MEMORY/HEAP-Tabelle verwenden und in der Where-Bedingung zum Indizieren der Spalte kein "=" verwenden, wird der Index nicht verwendet. Die Head-Tabelle verwendet den Index nur, wenn die Bedingung "=" verwendet wird. Bei durch „oder“ getrennten Bedingungen gilt: Wenn die Spalte in der Bedingung vor „oder“ einen Index hat, die Spalte danach jedoch nicht, werden die beteiligten Indizes nicht verwendet. Beispiel: Zusammengesetzter Index: Wenn die Indexspalte nicht der erste Teil des zusammengesetzten Indexes ist, wird der Index nicht verwendet (d. h., er entspricht nicht dem Präfix ganz links). Wenn der zusammengesetzte Index beispielsweise (Schlüssel1, Schlüssel2) ist, wird die Abfrage Wenn „like“ mit „%“ beginnt, wird der Index dieser Spalte nicht verwendet. Beispielsweise Wenn die Spalte eine Zeichenfolge ist, muss der Zeichenkonstantenwert in der Where-Bedingung in Anführungszeichen gesetzt werden. Andernfalls wird der Index für die Spalte nicht verwendet, selbst wenn er vorhanden ist. Aus dem Obigen können wir ersehen, dass ein Index, selbst wenn wir ihn erstellen, möglicherweise nicht verwendet wird. Woher wissen wir also, wie unser Index verwendet wird? ? In MySQL gibt es zwei Variablen: Weitere Informationen zum korrekten Erstellen eines MySQL-Index finden Sie in der ausführlichen Erklärung zum korrekten Erstellen eines MySQL-Index. Wie wir alle wissen, können Tabellenindizes die Effizienz des Datenabrufs verbessern, die E/A-Kosten der Datenbank senken und die Kosten für die Datenbanksortierung reduzieren. Indizes sind jedoch nicht immer effektiv. Beispielsweise führen die folgenden Situationen zu Indexfehlern: 1. Wenn in der Bedingung ein „oder“ steht, wird der Index nicht verwendet, auch wenn in der Bedingung ein Index steht (deshalb wird „oder“ in SQL-Anweisungen so wenig wie möglich verwendet) Hinweis: Wenn Sie „oder“ verwenden und den Index wirksam machen möchten, können Sie in der „oder“-Bedingung nur jeder Spalte einen Index hinzufügen. 2. Bei einem mehrspaltigen Index wird der Index nur verwendet, wenn der erste Teil verwendet wird. 3. Wenn die Like-Abfrage mit % beginnt, wird der Index nicht verwendet. 4. Wenn der Spaltentyp ein String ist, müssen die Daten in der Bedingung in Anführungszeichen gesetzt werden, sonst wird der Index nicht verwendet. 5. Wenn MySQL schätzt, dass ein vollständiger Tabellenscan schneller ist als ein Index, wird der Index nicht verwendet. Darüber hinaus können Sie die Verwendung des Indexes einsehen Status wie „Handler_read%“ anzeigen; Darauf kann jeder achten: Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an Das könnte Sie auch interessieren:
|
<<: Realisierung von Provinz- und Gemeindeverknüpfungseffekten auf Basis von JavaScript
>>: Einfache Verwendung des Vue Vee-Validate-Plugins
Ich habe heute Nachmittag mit der Konfiguration v...
!DOCTYPE Gibt die Document Type Definition (DTD) ...
Vorwort Dockerfile ist ein vom Docker-Programm in...
Fallbeschreibung: - Verwenden Sie Tabellen, um Se...
1. Warum verpacken? Erleichtert das Aufrufen von ...
Flexibles Layout Flex ist die Abkürzung für Flexi...
<br />Original: http://uicom.net/blog/?p=762...
Inhaltsverzeichnis Vorwort: Ergebnis: 1. Polymeri...
Inhaltsverzeichnis Kurze Analyse des MySQL Master...
1. Unterabfrage MySQL 4.1 und höher unterstützen ...
Ob MySQL bei der Ausführung von Vorgängen wie Ein...
Inhaltsverzeichnis 1. Löschen Sie die alte Versio...
Beim Erstellen einer Tabellenseite ist die für td ...
1. Ich habe vorher die Version QT5.13 heruntergel...
erinnern: IDE-Festplatte: Die erste Festplatte is...