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

So verwenden Sie Axios, um Netzwerkanforderungen in React Native zu stellen

In der Front-End-Entwicklung gibt es viele Möglic...

So konfigurieren Sie Java-Umgebungsvariablen im Linux-System

Konfigurieren von Java-Umgebungsvariablen Hier we...

So finden Sie die my.ini-Konfigurationsdatei in MySQL 5.6 unter Windows

Machen Sie sich eine Notiz, damit Sie später dara...

Beispiel für die Bereitstellung eines Django-Projekts mit Docker

Es ist auch sehr einfach, Django-Projekte mit Doc...

Die Frontend-Entwicklung muss jeden Tag lernen, HTML-Tags zu verstehen (1)

2.1 Semantisierung sorgt dafür, dass Ihre Webseit...

Analysieren der Knotenereignisschleife und der Nachrichtenwarteschlange

Inhaltsverzeichnis Was ist asynchron? Warum brauc...

Detaillierte Erklärung zur Verwendung von Filtereigenschaften in CSS

Das Filterattribut definiert die visuelle Wirkung...

Mehrere Möglichkeiten zum Senden von HTML-Formularen_PowerNode Java Academy

Methode 1: Absenden über den Absenden-Button <...

Eine vollständige Anleitung zu CSS-Stilattributen css() und width() in jQuery

Inhaltsverzeichnis 1. Grundlegende Verwendung von...

So stoppen Sie die CSS-Animation mittendrin und behalten die Haltung bei

Vorwort Ich bin einmal auf ein schwieriges Proble...

So implementieren Sie Property Hijacking mit JavaScript defineProperty

Inhaltsverzeichnis Vorwort Deskriptoren Detaillie...