Bei der Verwendung von Indizes in MySQL beachten Sie bitte: 1. NULL-Werte in Spalten werden nicht in den Index aufgenommen. 2. Bei der Indizierung einer Zeichenfolge sollten Sie eine Präfixlänge angeben. 3. MySQL-Abfragen verwenden nur einen Index; 4. Führen Sie keine Operationen an Spalten aus. 5. Verwenden Sie keine NOT IN-Operationen.
Hinweise:
(Empfohlenes Tutorial: MySQL-Tutorial)
1. Der Index enthält keine Spalten mit NULL-Werten
Solange die Spalte NULL-Werte enthält, wird sie nicht in den Index aufgenommen index: Solange eine Spalte im zusammengesetzten Index einen NULL-Wert enthält, ist diese Spalte für diesen zusammengesetzten Index ungültig. Daher sollten wir beim Entwerfen der Datenbank nicht zulassen, dass der Standardwert des Felds NULL ist.
2. Verwenden Sie einen kurzen Index
, um die Zeichenfolge zu indizieren. Wenn möglich, sollten Sie eine Präfixlänge angeben. Wenn Sie beispielsweise eine CHAR(255)-Spalte haben und die meisten Werte innerhalb der ersten 10 oder 20 Zeichen eindeutig sind, indizieren Sie nicht die gesamte Spalte. Kurze Indizes verbessern nicht nur die Abfragegeschwindigkeit, sondern sparen auch Speicherplatz und E/A-Vorgänge.
3. Indexspaltensortierung
MySQL-Abfrage verwendet nur einen Index. Wenn also der Index in der where-Klausel verwendet wurde, verwenden die Spalten in der Reihenfolge nach nicht den Index. Verwenden Sie daher keine Sortiervorgänge, wenn die Standardsortierung der Datenbank die Anforderungen erfüllen kann. Versuchen Sie, die Sortierung mehrerer Spalten nicht einzuschließen. Bei Bedarf ist es am besten, zusammengesetzte Indizes für diese Spalten zu erstellen.
4. Like-Anweisungsoperation
Im Allgemeinen wird die Verwendung einer Like-Operation nicht empfohlen. Wenn sie verwendet werden muss, ist auch die Verwendung problematisch. Wie „%aaa%“ wird der Index nicht verwendet, aber wie „aaa%“ kann der Index verwendet werden.
5. Führen Sie keine Operationen an Spalten
wie folgt aus:
select * from users where YEAR(adddate)<2007;
führt Operationen an jeder Zeile aus, was zu einem Indexfehler und einem vollständigen Tabellenscan führt, sodass wir es wie folgt ändern können:
select * from users where adddate<‘2007-01-01';
Das obige ist der detaillierte Inhalt vonWas sollten Sie bei der Verwendung von Indizes in MySQL beachten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!