Was Sie über das Erstellen von MySQL-Indizes wissen müssen

Was Sie über das Erstellen von MySQL-Indizes wissen müssen

Vorwort:

In MySQL verfügt grundsätzlich jede Tabelle über einen Index, und manchmal müssen Sie je nach Geschäftsszenario unterschiedliche Indizes hinzufügen. Die Erstellung von Indizes ist für den effizienten Betrieb der Datenbank sehr wichtig. Dieser Artikel stellt die Kenntnisse und Vorsichtsmaßnahmen im Zusammenhang mit der Erstellung von Indizes vor.

1. Indexmethode erstellen

Sie können einen Index erstellen, wenn Sie eine Tabelle erstellen, oder Sie können die Anweisung „alter table“ oder „create index“ verwenden, um einen Index zu erstellen, nachdem die Tabelle erstellt wurde. Nachfolgend sind einige gängige Szenarien zur Indexerstellung aufgeführt.

# Geben Sie den Index beim Erstellen der Tabelle an CREATE TABLE `t_index` (
  `increment_id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'Primärschlüssel automatisch inkrementieren',
  `col1` int(11) NICHT NULL,
  `col2` varchar(20) NICHT NULL,
  `col3` varchar(50) NICHT NULL,
  `col4` int(11) NICHT NULL,
 `col5` varchar(50) NICHT NULL,
  PRIMÄRSCHLÜSSEL (`increment_id`),
  EINZIGARTIGER SCHLÜSSEL `uk_col1` (`col1`),
  SCHLÜSSEL `idx_col2` (`col2`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Testindex';

# Index erstellen (zwei Methoden)
# Normaler Index, alter table `t_index`, add index idx_col3 (col3);
 Erstellen Sie den Index idx_col3 auf t_index(col3);
# Eindeutiger Index, alter table `t_index`, eindeutigen Index uk_col4 (col4) hinzufügen;
Erstellen Sie einen eindeutigen Index uk_col4 auf t_index(col4).
# Gemeinsamer Index, alter table `t_index`, add index idx_col3_col4 (col3,col4);
Erstellen Sie den Index idx_col3_col4 auf t_index(col3,col4);
# Präfixindex alter table `t_index` add index idx_col5 (col5(20));
 Erstelle den Index idx_col5 auf t_index(col5(20));

# Zeigen Sie den Tabellenindex an mysql> show index from t_index;
+---------+------------+----------+-----------+--------------+---------------+--------------+-------------+----------+----------+--------+---------+---------+---------+---------+---------+
| Tabelle | Nicht_eindeutig | Schlüsselname | Sequenz_im_Index | Spaltenname | Sortierung | Kardinalität | Unterteil | Gepackt | Null | Indextyp | Kommentar | Indexkommentar |
+---------+------------+----------+-----------+--------------+---------------+--------------+-------------+----------+----------+--------+---------+---------+---------+---------+---------+
| t_index | 0 | PRIMARY | 1 | increment_id | A | 0 | NULL | NULL | | BTREE | | |
| t_index | 0 | uk_col1 | 1 | col1 | A | 0 | NULL | NULL | | BTREE | | |
| t_index | 1 | idx_col2 | 1 | col2 | A | 0 | NULL | NULL | | BTREE | | |
| t_index | 1 | idx_col3 | 1 | col3 | A | 0 | NULL | NULL | | BTREE | | |
+---------+------------+----------+-----------+--------------+---------------+--------------+-------------+----------+----------+--------+---------+---------+---------+---------+---------+

2. Zum Erstellen eines Indexes erforderliche Berechtigungen

Wenn Sie nicht das Root-Konto verwenden, müssen Sie beim Erstellen eines Index das Berechtigungsproblem berücksichtigen. Benötigen Sie nur Berechtigungen zum Erstellen und Ändern? Schauen wir uns das genauer an.

# Benutzerberechtigungen testen mysql> show grants;
+--------------------------------------------------------------------------------------------------+
| Zuschüsse für testuser@% |
+--------------------------------------------------------------------------------------------------+
| GRANT USAGE ON *.* TO 'Testbenutzer'@'%' |
| GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER ON `testdb`.* TO 'testuser'@'%' |
+--------------------------------------------------------------------------------------------------+

# Index mit „alter table mysql“ erstellen> alter table „t_index“ add index idx_col2 (col2);
Abfrage OK, 0 Zeilen betroffen (0,05 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

# Index erstellen mysql> Index erstellen idx_col3 auf t_index(col3);
FEHLER 1142 (42000): INDEX-Befehl für Benutzer „testuser“@„localhost“ für Tabelle „t_index“ verweigert

# Index erstellen Zum Erstellen eines Index benötigen Sie auch die Indexberechtigung. Erteilen Sie die Indexberechtigung und führen Sie dann mysql> create index idx_col3 on t_index(col3); aus.
Abfrage OK, 0 Zeilen betroffen (0,04 Sek.)
Datensätze: 0 Duplikate: 0 Warnungen: 0

Aus dem obigen Test können wir ersehen, dass zum Erstellen eines Indexes mit der Methode „Alter Table“ die Änderungsberechtigung erforderlich ist und zum Erstellen eines Indexes mit der Methode „Create Index“ die Indexberechtigung erforderlich ist.

Darüber hinaus können Sie Indizes auch mit „alter table `tb_name` drop index xxx“ und „drop index xxx on tb_name“ löschen, wofür jeweils Änderungs- und Indexberechtigungen erforderlich sind.

Der offensichtliche Vorteil von Indizes besteht darin, dass sie Abfragen beschleunigen können. Das Erstellen von Indizes ist jedoch auch mit Kosten verbunden. Erstens muss bei jeder Indexerstellung ein B+-Baum dafür erstellt werden, was zusätzlichen Speicherplatz beansprucht. Zweitens muss der Index auch dynamisch verwaltet werden, wenn Daten in der Tabelle hinzugefügt, gelöscht oder geändert werden, was die Geschwindigkeit der Datenverwaltung verringert. Daher müssen wir beim Erstellen von Indizes immer noch das Geschäft berücksichtigen. Es wird empfohlen, einer Tabelle nicht zu viele Indizes hinzuzufügen.

Oben finden Sie detaillierte Informationen zum Erstellen von MySQL-Indizes. Weitere Informationen zum Erstellen von MySQL-Indizes finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • So erstellen Sie schnell eine Testdatentabelle mit 8 Millionen Einträgen in MySQL
  • Verstehen Sie die Prinzipien der MySQL-Indexerstellung in einem Artikel
  • MySQL erstellt eine geplante Aufgabe
  • Der erste Schritt beim Einstieg in die MySQL-Datenbank besteht darin, eine Tabelle zu erstellen
  • So erstellen Sie eine Tabelle in MySQL und fügen Feldkommentare hinzu
  • Detaillierte Erläuterung zum Erstellen, Aufrufen und Verwalten von MySQL-gespeicherten Prozeduren
  • MySQL erstellt Viele-zu-viele- und Eins-zu-eins-Beziehungen

<<:  Der grundlegendste Code für Webseiten

>>:  Berechnung des Prozentwerts, wenn die CSS-Positionseigenschaft absolut ist

Artikel empfehlen

Was macht die MySQL-Datenbank?

MySQL ist ein relationales Datenbankverwaltungssy...

Detaillierte Erklärung der Vue-Anmeldung und -Abmeldung

Inhaltsverzeichnis Login-Geschäftsprozess Impleme...

mysql5.7.18 dekomprimierte Version zum Starten des MySQL-Dienstes

Die dekomprimierte Version von mysql5.7.18 starte...

Tiefgreifendes Verständnis der MySQL-Selbstverbindung und Join-Assoziation

1. MySQL-Selbstverbindung MySQL muss beim Abfrage...

So ändern Sie das MySQL-Datenbankdateiverzeichnis in Ubuntu

Vorwort Der Ubuntu-Server des Unternehmens platzi...

Eine kurze Beschreibung der Beziehung zwischen k8s und Docker

In letzter Zeit verwendet das Projekt Kubernetes ...

Detaillierte Analyse der Parameterdatei my.cnf von MySQL in Ubuntu

Vorwort Aufgrund meines MySQL-Verständnisses denk...

Verwenden Sie vue2+elementui für Hover-Prompts

Die Hover-Prompts von Vue2+elementui sind in exte...

Dieser Artikel zeigt Ihnen, wie Sie CSS wie JS-Module importieren

Inhaltsverzeichnis Vorwort Was sind erstellbare S...

Detaillierte Erläuterung der Docker Swarm-Dienstorchestrierungsbefehle

1. Einleitung Docker verfügt über ein Orchestrier...

Beispiele für die Verwendung von MySQL-Abdeckungsindizes

Was ist ein Deckungsindex? Das Erstellen eines In...