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

Anwendung zur Verarbeitung von HTML-Tag-Überläufen

Verwenden Sie CSS, um Bildlaufleisten zu ändern 1...

TCP-Socket-SYN-Warteschlange und Accept-Warteschlangen-Unterschiedsanalyse

Zunächst müssen wir verstehen, dass ein TCP-Socke...

Analyse von Mysql-Datenmigrationsmethoden und -Tools

In diesem Artikel wird hauptsächlich die Analyse ...

So zeigen Sie kleine Symbole in der Browsertitelleiste einer HTML-Webseite an

Genau wie dieser Effekt ist auch die Methode sehr...

Lösung zum Hinzufügen einer iptables-Firewall-Richtlinie zum MySQL-Dienst

Wenn Ihre MySQL-Datenbank auf einem CentOS7-Syste...

Sublime Text - Empfohlene Methode zum Festlegen von Browser-Tastenkombinationen

Codeeffekte werden häufig in unterschiedlichen Br...

Docker5 - Vollfunktionaler Hafenlager-Bauprozess

Harbor ist ein Registry-Server auf Unternehmenseb...

Analyse und Praxis des serverseitigen Rendering-Prinzips von React

Die meisten Leute haben schon einmal vom Konzept ...

Eine kurze Diskussion über die Berechnungsmethode von key_len in MySQL erklären

Mit dem MySQL-Befehl „explain“ können Sie die Lei...

Diskussion über CSS-Stilpriorität und kaskadierende Reihenfolge

Im Allgemeinen : [1 wichtige Flagge] > [4 beson...

Detaillierte Erklärung zur Verwendung des CSS-Zeigerereignisse-Attributs

Bei der Frontend-Entwicklung stehen wir in direkt...

Verwendung des Linux-Befehls bzip2

1. Befehlseinführung bzip2 wird zum Komprimieren ...

Best Practices-Handbuch für partitionierte MySQL-Tabellen

Vorwort: Partitionierung ist ein Tabellenentwurfs...