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

MySQL NULL-Datenkonvertierungsmethode (unbedingt lesen)

Wenn Sie MySQL zum Abfragen der Datenbank verwend...

...

Implementierung der CSS-Rahmenlängensteuerungsfunktion

Wenn die Rahmenlänge früher kleiner als der Conta...

Zusammenfassung der Verwendung spezieller Operatoren in MySql

Vorwort Es gibt vier Arten von Operatoren in MySQ...

Lassen Sie uns über das v-on-Parameterproblem in Vue sprechen

Verwendung von v-on:clock in Vue Ich lerne derzei...

Welche Vorteile bietet die Verwendung eines B+-Baums als Indexstruktur in MySQL?

Vorwort In MySQL verwenden sowohl Innodb als auch...

JavaScript-Grundlagenvariablen

Inhaltsverzeichnis 1. Variablenübersicht 1.1 Spei...

Lösung für die Upload-Einschränkung von Element-ui-Uploaddateien

Frage Die Angabe des Typs der hochgeladenen Datei...

Modularität in Node.js, npm-Paketmanager erklärt

Inhaltsverzeichnis Das Grundkonzept der Modularit...

MySQL-Grundanweisungen zum Hinzufügen, Löschen, Ändern und Abfragen

Grammatik Hier ist die allgemeine SQL-Syntax für ...

Vue erzielt den Top-Effekt durch V-Show

html <div Klasse="nach oben" v-show=...

Analyse und Lösung des beim Start von MySQL gemeldeten Fehlers „ERROR:2002“

Vorwort Dieser Artikel stellt hauptsächlich die A...