Heim  >  Artikel  >  Datenbank  >  So fügen Sie einem String in MySQL einen effizienten Index hinzu

So fügen Sie einem String in MySQL einen effizienten Index hinzu

王林
王林nach vorne
2023-05-28 21:04:30886Durchsuche

Anforderungen

Im täglichen Bedarf ist es ein sehr häufiger Vorgang, dass sich Benutzer mit ihrer Mobiltelefonnummer oder E-Mail-Adresse bei einem System anmelden. Wie kann man also einen sinnvollen Index für Felder wie Mobiltelefonnummer oder E-Mail-Adresse erstellen?

Präfixindex

Der Präfixindex verwendet einen Teil eines Feldwerts als Index. Wenn Sie beim Erstellen eines Index in MySQL nicht die Länge des Indexfelds angeben, wird die gesamte Zeichenfolge zum Erstellen des Index verwendet.

语句1:
alter table test add index idx(email);
语句2:
alter table test add index idx(email(8));

Für Anweisung 1 enthält der erstellte Index den gesamten E-Mail-String-Wert in jedem Datensatz.

Für Anweisung 2 speichert der erstellte Index die ersten 8 Bytes des E-Mail-Felds in jedem Datensatz.

Der Vorteil der Verwendung eines Präfixindex liegt auf der Hand: Der Index nimmt weniger Platz ein, der gesamte Indexbaum ist kompakter und die Höhe des Baums ist relativ geringer.

Aber entsprechend wird die Indexunterscheidung geringer, was zu einer Erhöhung der Anzahl der Indexscanzeilen führen kann.

Wenn wir einen Index erstellen, ist die Unterscheidung des Index ein sehr wichtiger Indikator. Je höher die Auflösung, desto weniger doppelte Werte und desto effizienter ist der Scan.

Durch die richtige Planung der Länge des Präfixindex können Sie nicht nur Platz sparen, sondern auch das Scannen zusätzlicher Zeilen vermeiden. Es wird empfohlen, die spezifische zu verwendende Länge anhand unserer tatsächlichen Geschäftsszenarien zu beurteilen und zu testen.

Umgekehrte Reihenfolge + Präfixindex

Umgekehrte Reihenfolge + Präfixindex hat ein klassisches Verwendungsszenario, nämlich die Indizierung von ID-Nummern.

Angenommen, wir möchten nun die Identitätsinformationen aller Personen in einer Stadt oder einem Landkreis verwalten, in dem die Abfrage anhand der ID-Nummer ein Hochfrequenzszenario ist.

Die Personalausweisnummer hat insgesamt 15 oder 18 Ziffern. Die ersten 6 Ziffern der Personalausweisnummer von Personen in derselben Stadt oder demselben Landkreis sind im Allgemeinen gleich Es wird Platz verschwendet, was zu Leistungseinbußen führt. Wenn Sie einen direkten Präfixindex verwenden, haben die ersten 6 Bits nur eine sehr geringe (oder gar keine) Unterscheidung, da die meisten Werte die gleichen ersten 6 Bits haben.

Zu diesem Zeitpunkt werden die Vorteile der Verwendung von umgekehrter Reihenfolge + Präfixindex deutlich.

Wir speichern den Personalausweis zunächst in umgekehrter Reihenfolge oder erstellen in umgekehrter Reihenfolge ein redundantes Personalausweisnummernfeld und verwenden dann die ersten 6 Ziffern als Präfixindex.

Die Unterscheidung zwischen den letzten 6 Ziffern des Personalausweises reicht uns grundsätzlich aus. Sollten Sie dennoch das Gefühl haben, dass die Abfragegeschwindigkeit nicht ausreicht, ist es kein Problem, die ersten 8 Ziffern zu übernehmen.

Das obige ist der detaillierte Inhalt vonSo fügen Sie einem String in MySQL einen effizienten Index hinzu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen