Methoden zur Optimierung der MySQL-Datenbank: 1. Erstellen Sie einen Index. 2. Fügen Sie keine Spalten mit NULL-Werten in den Index ein. 5. Versuchen Sie, keine Spalten einzuschließen 6. Vermeiden Sie die Verwendung ähnlicher Operationen. 7. Führen Sie keine Operationen an Spalten usw. durch.
Dieser Artikel optimiert die MySQL-Datenbank durch 8 Methoden: Erstellen von Indizes, zusammengesetzte Indizes, Indizes, die keine Spalten mit NULL-Werten enthalten, Verwendung kurzer Indizes und Sortierung Indizes Fragen führen wie Anweisungsoperationen keine Operationen an Spalten aus, verwenden keine NOT IN- und <>-Operationen und erläutern, warum Sie dies tun, um Referenzmaterialien bereitzustellen.
Empfohlener Kurs: MySQL-Tutorial.
1. Erstellen Sie einen Index
Für Anwendungen, bei denen Abfragen dominieren, sind Indizes besonders wichtig. Oftmals werden Leistungsprobleme einfach dadurch verursacht, dass wir vergessen haben, einen Index hinzuzufügen, oder dass wir keinen effektiveren Index hinzugefügt haben. Wenn kein Index vorhanden ist, wird ein vollständiger Tabellenscan durchgeführt, um auch nur ein bestimmtes Datenelement zu finden. Wenn die Datenmenge in einer Tabelle groß ist und nur wenige qualifizierte Ergebnisse vorliegen, führt das Fehlen eines Index zu schwerwiegenden Leistungseinbußen . . Es ist jedoch nicht in jeder Situation erforderlich, einen Index zu erstellen. Beispielsweise hat die Erstellung eines Index nicht nur keinen Vorteil, sondern wirkt sich auch auf die Aktualisierungsgeschwindigkeit aus.
2. Zusammengesetzter Index
Zum Beispiel gibt es eine Anweisung wie diese: Wählen Sie * aus Benutzern aus, wobei Bereich='Peking' und Alter=22;
Wenn wir jeweils einen einzelnen Index für Bereich und Alter erstellen, da MySQL-Abfragen jeweils nur einen Index verwenden können, hat dies zwar die Effizienz des vollständigen Tabellenscans im Vergleich zu keinem Index verbessert, aber wenn wir einen einzelnen Index erstellen Bereich und Alter. Das Erstellen eines zusammengesetzten Index für die Spalte führt zu einer höheren Effizienz. Wenn wir einen zusammengesetzten Index aus (Fläche, Alter, Gehalt) erstellen, entspricht dies tatsächlich der Erstellung von drei Indizes (Fläche, Alter, Gehalt), (Fläche, Alter) und (Fläche). Dies wird als bestes linkes Präfixmerkmal bezeichnet . Wenn wir einen zusammengesetzten Index erstellen, sollten wir daher die am häufigsten als Einschränkungen verwendeten Spalten in absteigender Reihenfolge auf der linken Seite anordnen.
3. Der Index sollte keine Spalten mit NULL-Werten enthalten.
Solange die Spalte NULL-Werte enthält, wird sie nicht in den Index aufgenommen Solange der zusammengesetzte Index einen NULL-Wert enthält. Die Spalte enthält einen NULL-Wert, dann 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.
4. Verwenden Sie den Kurzindex
, um die Zeichenfolge zu indizieren. Wenn möglich, sollten Sie eine Präfixlänge angeben. Wenn Sie beispielsweise eine CHAR(255)-Spalte haben, indizieren Sie nicht die gesamte Spalte, wenn die meisten Werte innerhalb der ersten 10 oder 20 Zeichen eindeutig sind. Kurze Indizes verbessern nicht nur die Abfragegeschwindigkeit, sondern sparen auch Speicherplatz und E/A-Vorgänge.
5. Problem beim Sortieren des Index
MySQL-Abfrage verwendet nur einen Index. Wenn also ein Index in der where-Klausel verwendet wurde, sind die Spalten in der Reihenfolge nach Indizes wird nicht verwendet. 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.
6. Like-Anweisungsoperation
Im Allgemeinen wird die Verwendung einer Like-Operation nicht empfohlen. Wenn sie verwendet werden muss, ist auch die Verwendung problematisch. „%aaa%“ verwendet nicht den Index, aber „aaa%“ verwendet den Index.
7. Führen Sie keine Operationen an Spalten aus.
wählen Sie * aus Benutzern aus, bei denen YEAR(adddate)<2007;
in jeder Zeile steht Dies führt dazu, dass der Index fehlschlägt und ein vollständiger Tabellenscan durchgeführt wird, sodass wir ihn in
select * from user where adddate<'2007-01-01';
ändern können 8. Verwenden Sie keine NOT IN- und <>-Operationen.
NOT IN- und <>-Operationen verwenden keine Indizes und führen einen vollständigen Tabellenscan durch. NOT IN kann durch NOT EXISTS ersetzt werden, und id<>3 kann durch id>3 oder id<3 ersetzt werden.
Das obige ist der detaillierte Inhalt vonWie optimiert man die MySQL-Datenbank?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!