Analyse von MySQL-Beispielen für doppelte und redundante Indizes

Analyse von MySQL-Beispielen für doppelte und redundante Indizes

In diesem Artikel werden MySQL-Duplikatsindizes und redundante Indizes anhand von Beispielen beschrieben. Teilen Sie uns die Einzelheiten zu Ihrer Information mit:

Doppelter Index : bezieht sich auf mehrere Indizes, die für eine Spalte oder mehrere Spalten in derselben Reihenfolge erstellt wurden.

Redundante Indizes : Die von den beiden Indizes abgedeckten Spalten überlappen sich

Redundante Indizes nutzen in einigen speziellen Szenarien die Indexabdeckung und sind daher schneller.

Szenario

Beispielsweise die Artikel- und Tag-Tabelle

+——+——-+——+
| ID | Artikel-ID | Tag |
+——+——-+——+
| 1 | 1 | PHP |
| 2 | 1 | Linux |
| 3 | 2 | MySQL |
| 4 | 2 | Orakel |
+——+——-+——+

In der Praxis gibt es zwei Arten von Abfragen

  • Artid - Abfrageartikel - Tag
  • Tag – Abfrageartikel – ArtID

SQL-Anweisung:

Wähle Tag aus t11, wo Art.-ID = 2 ist;
Wählen Sie ArtID aus t11, wo Tag = „PHP“ ist.

Wir können redundante Indizes erstellen, um eine Indexabdeckung zu erreichen, was die Abfrageeffizienz erhöht.

1. Erstellen Sie eine Artikel-Tag-Tabelle

In dieser Tabelle gibt es zwei Indizes, einen at und einen ta. Beide Indizes verwenden die Felder artid und tag.

CREATE TABLE `t16` (
 `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
 `artid` int(10) unsigned NOT NULL DEFAULT '0',
 `tag` char(20) NICHT NULL STANDARD '',
 Primärschlüssel (`id`),
 SCHLÜSSEL `at` (`artid`,`tag`),
 SCHLÜSSEL `ta` (`tag`,`artid`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8

2. Testen Sie zwei SQL-Anweisungen

Wählen Sie ArtID aus t11, wo Tag = „PHP“ ist.

Das Extra in der Abfrageanalyse dieser Anweisung enthält Using Index, was bedeutet, dass hier die Indexabdeckung verwendet wird. Nach der Verwendung der Indexabdeckung müssen keine Zeilen an die Abfragedaten zurückgegeben werden, sodass die Abfrageeffizienz relativ hoch ist.

這里寫圖片描述

Wähle Tag aus t11, wo Art.-ID = 1;

Das Extra in der Abfrageanalyse dieser Anweisung enthält Using Index, was bedeutet, dass hier die Indexabdeckung verwendet wird. Nach der Verwendung der Indexabdeckung müssen keine Zeilen an die Abfragedaten zurückgegeben werden, sodass die Abfrageeffizienz relativ hoch ist.

列表內容

Weitere Informationen zur Indexabdeckung finden Sie im vorherigen Artikel: Indexabdeckung

Leser, die an weiteren MySQL-bezogenen Inhalten interessiert sind, können sich die folgenden Themen auf dieser Site ansehen: „Zusammenfassung der Kenntnisse im Bereich MySQL-Indexoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Allgemeinfunktionen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Protokolloperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-Transaktionsoperationen“, „Zusammenfassung der Kenntnisse im Bereich MySQL-gespeicherte Prozeduren“ und „Zusammenfassung der Kenntnisse im Zusammenhang mit MySQL-Datenbanksperren“.

Ich hoffe, dass dieser Artikel für jedermann beim Entwurf einer MySQL-Datenbank hilfreich ist.

Das könnte Sie auch interessieren:
  • MySQL-Abfrage redundanter Indizes und ungenutzter Indexoperationen
  • Detaillierte Erklärung redundanter und doppelter Indizes in MySQL
  • Der Unterschied zwischen redundanten und doppelten Indizes in MySQL

<<:  Grafisches Tutorial zur Installation eines Mac-Systems in einer virtuellen Maschine unter Win10

>>:  WeChat-Applet implementiert Taschenrechnerfunktion

Artikel empfehlen

WeChat-Miniprogramm zur Implementierung elektronischer Signaturen

In diesem Artikel finden Sie den spezifischen Cod...

Docker startet den Implementierungsprozess der MySQL-Konfiguration

Inhaltsverzeichnis Tatsächlicher Kampfprozess Beg...

Installieren und Bereitstellen von Java8 und MySQL unter CentOS7

Im Allgemeinen werden Java-Lernprogramme und Bere...

Lernen Sie, wie Sie in 6 Sekunden 1 Million Datensätze in MySQL einfügen

1. Idee Es dauerte nur 6 Sekunden, um 1.000.000 D...

C# implementiert MySQL-Befehlszeilensicherung und -wiederherstellung

Es gibt viele Tools zum Sichern von MySQL-Datenba...

Einfacher Vergleich von Meta-Tags in HTML

Das Meta-Tag wird verwendet, um Dateiinformationen...

Data URI und MHTML Komplettlösung für alle Browser

Daten-URI Data URI ist ein durch RFC 2397 definie...

HTML+CSS zum Erstellen eines einfachen Fortschrittsbalkens

1. HTML-Code Code kopieren Der Code lautet wie fo...

Detaillierte Erklärung zweier zu beachtender Punkte bei vue3: Setup

Inhaltsverzeichnis In vue2 In vue3 Hinweise zur E...

So importieren und exportieren Sie Docker-Images

Dieser Artikel stellt den Import und Export von D...