Heim >Datenbank >MySQL-Tutorial >Wann wird ein MySQL-Index erstellt?
Index kann die Effizienz des Datenabrufs verbessern und die E/A-Kosten der Datenbank senken, und der Index kann auch die Sortierkosten der Datenbank senken. Der Sortiervorgang Gruppierung verbraucht hauptsächlich CPU-Ressourcen und Speicher. Wenn Sie also den Index beim Sortier- und Gruppierungsvorgang sinnvoll nutzen, wird der Verbrauch von CPU-Ressourcen erheblich reduziert.
Wie kann festgestellt werden, ob ein Index erstellt werden soll?
1. Wir alle kennen dieses Feld , das häufig als Abfragebedingung
verwendet wird. Was bedeutet es, häufig zu unterrichten? Analysieren Sie alle von Ihnen ausgeführten SQL-Anweisungen. Am besten ist es, sie alle einzeln aufzulisten. Nach der Analyse stellten wir dann fest, dass einige der Felder in den meisten SQL-Anweisungsabfragen verwendet werden, und erstellten daher gezielt Indizes für sie.
2. Felder mit schlechter Eindeutigkeit sind nicht für die Indizierung geeignet
Was sind Felder mit schlechter Eindeutigkeit? Wie Statusfeld und Typfeld. Die Felder, die nur wenige feste Werte speichern, wie z. B. den Benutzer-Login--Status, den Nachrichtenstatus usw. Dabei handelt es sich um die Merkmale des Index-Scannings. Beispiel: Suchen Sie über den Index einige Daten mit den Schlüsselwerten A und B, finden Sie über A ein passendes Datenelement, und diese Daten befinden sich auf Seite X. Fahren Sie dann mit dem Scannen fort und stellen Sie fest, dass die mit A übereinstimmenden Daten auf Seite Y angezeigt werden , dann verwirft die Speicher-Engine die Daten auf Seite X, wird erneut gescannt und Seite X wird zweimal oder sogar mehrmals gescannt. Analog dazu kann dieselbe Datenseite wiederholt gelesen, verworfen und erneut gelesen werden, was zweifellos die E/A-Belastung der Speicher-Engine erheblich erhöht.
3. AktualisierenEin zu häufiges Feld ist nicht zum Erstellen eines Index geeignet
Wenn Sie einen Index für dieses Feld erstellen, wenn Sie die Felddaten erneut aktualisieren Die Datenbank aktualisiert ihren Index automatisch. Wenn dieses Feld also zu häufig aktualisiert wird, wird der Index ständig aktualisiert. Die Auswirkungen auf die Leistung sind vorstellbar. Nur Felder, die Dutzende Male abgerufen und einmal aktualisiert wurden, entsprechen mehr den Indizierungsspezifikationen. Und wenn ein Feld im selben Zeitraum mehrmals aktualisiert wird, kann es nicht indiziert werden.
4. Felder, die nicht in der Where-Bedingung erscheinen, sollten nicht indiziert werden
Ich glaube, das weiß jeder.
Das obige ist der detaillierte Inhalt vonWann wird ein MySQL-Index erstellt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!