Erklärung der MySQL-Indextypen Normal, Unique und Full Text

Erklärung der MySQL-Indextypen Normal, Unique und Full Text

Zu den Indextypen von MySQL gehören Normalindex, eindeutiger Index und Volltextindex. Die richtige Verwendung von Indizes kann die Abfrageeffizienz der Datenbank erheblich verbessern. Im Folgenden finden Sie eine Einführung in die drei Indextypen.

Normal: Dies ist der einfachste Index. Er unterliegt keinen Einschränkungen. Der Standardindex vom Typ BTREE in MyIASM ist der Index, den wir in den meisten Fällen verwenden.

unique: Gibt einen eindeutigen Index an, der keine Duplikate zulässt, wenn garantiert ist, dass die Feldinformationen nicht wiederholt werden. Wenn beispielsweise die ID-Nummer als Index verwendet wird, kann sie auf eindeutig gesetzt werden.

Volltext: Zeigt einen Index für die Volltextsuche an, der nur für MyISAM-Tabellen verfügbar ist. FULLTEXT funktioniert am besten bei der Suche nach sehr langem Text. Wird für kürzere Texte verwendet. Bedenken Sie, dass das Generieren von Volltextindizes bei Datentabellen mit großer Kapazität sehr zeitaufwändig ist und viel Speicherplatz beansprucht.

Der Unterschied zwischen den MySQL-Indextypen Normal, Unique und Full Text

Normal:

Gibt einen normalen Index an, der in den meisten Fällen verwendet werden kann

Einzigartig:

Einschränkungen identifizieren jeden Datensatz in einer Datenbanktabelle eindeutig, d. h., jeder Datensatz in einer einzelnen Tabelle kann nicht eindeutig sein (z. B. ist ein Personalausweis eindeutig). Sowohl die Einschränkungen Unique (erfordert Eindeutigkeit der Spalte) als auch Primary Key (Primärschlüssel = eindeutig + nicht null Eindeutigkeit der Spalte) garantieren Eindeutigkeit für Spalten oder Spaltensätze. Primary Key hat eine automatisch definierte Unique-Einschränkung, aber jede Tabelle kann mehrere Unique-Einschränkungen haben, aber nur eine Primary Key-Einschränkung.

Erstellen einer Unique-Einschränkung in MySQL

Volltext:

Zeigt die Volltextsuche an. Funktioniert am besten bei der Suche nach langen Texten. Für kurze Texte empfiehlt sich die Verwendung von Index. Bei der Suche nach großen Datenmengen ist es jedoch viel schneller, die Daten in eine Tabelle ohne globalen Index einzugeben und dann mit „Index erstellen“ einen Volltextindex zu erstellen, als zuerst einen Volltextindex für eine Tabelle zu erstellen und dann Daten zu schreiben.

Zusammenfassend lässt sich sagen, dass der Indextyp durch die Inhaltsmerkmale des indizierten Felds bestimmt wird, wobei „normal“ normalerweise am gebräuchlichsten ist.

Welche Felder in der Tabelle sollten im tatsächlichen Betrieb als Indizes ausgewählt werden?

Um die Verwendung von Indizes effizienter zu gestalten, müssen Sie beim Erstellen von Indizes berücksichtigen, für welche Felder Indizes erstellt werden sollen und welcher Indextyp erstellt werden soll. Es gibt sieben Hauptprinzipien:

1. Eindeutigen Index auswählen

Der Wert eines eindeutigen Indexes ist eindeutig und Sie können diesen Index verwenden, um einen Datensatz schneller zu identifizieren. Beispielsweise ist die Studenten-ID in der Studententabelle ein eindeutiges Feld. Durch das Erstellen eines eindeutigen Indexes für dieses Feld können die Informationen zu einem Studenten schnell ermittelt werden. Bei Verwendung des vollständigen Namens kann es zu Namensdubletten kommen, die die Suche verlangsamen.

2. Erstellen Sie Indizes für Felder, die häufig Sortier-, Gruppierungs- und Vereinigungsvorgänge erfordern

Felder, die häufig Operationen wie ORDER BY, GROUP BY, DISTINCT und UNION erfordern, verschwenden bei Sortieroperationen viel Zeit. Wenn Sie dafür einen Index erstellen, können Sie Sortiervorgänge effektiv vermeiden.

3. Erstellen Sie Indizes für Felder, die häufig als Abfragebedingungen verwendet werden

Wenn ein Feld häufig als Abfragebedingung verwendet wird, wirkt sich die Abfragegeschwindigkeit dieses Felds auf die Abfragegeschwindigkeit der gesamten Tabelle aus. Daher kann das Erstellen von Indizes für solche Felder die Abfragegeschwindigkeit der gesamten Tabelle verbessern.

4. Begrenzen Sie die Anzahl der Indizes

Je mehr Indizes, desto besser. Jeder Index erfordert Speicherplatz. Je mehr Indizes Sie haben, desto mehr Speicherplatz benötigen Sie. Beim Ändern einer Tabelle ist das Neuaufbauen und Aktualisieren des Indexes mühsam. Je mehr Indizes vorhanden sind, desto zeitaufwändiger wird das Aktualisieren der Tabelle.

5. Versuchen Sie, Indizes mit weniger Daten zu verwenden

Wenn der Indexwert sehr lang ist, wird die Abfragegeschwindigkeit beeinträchtigt. Beispielsweise dauert eine Volltextsuche in einem Feld vom Typ CHAR(100) definitiv länger als eine Volltextsuche in einem Feld vom Typ CHAR(10).

6. Versuchen Sie, die Präfixindizierung zu verwenden

Wenn der Wert des indizierten Felds sehr lang ist, ist es besser, ein Präfix des zu indizierenden Werts zu verwenden. Beispielsweise wäre die Volltextsuche bei Feldern vom Typ TEXT und BLOG Zeitverschwendung. Wenn Sie nur nach den ersten Zeichen eines Feldes suchen, kann dies die Suchgeschwindigkeit erhöhen.

7. Löschen Sie Indizes, die nicht mehr oder nur selten verwendet werden.

Wenn die Daten in der Tabelle in großen Mengen aktualisiert werden oder die Art und Weise geändert wird, wie die Daten verwendet werden, werden einige der ursprünglichen Indizes möglicherweise nicht mehr benötigt. Datenbankadministratoren sollten diese Indizes regelmäßig identifizieren und löschen, um die Auswirkungen der Indizes auf Aktualisierungsvorgänge zu verringern.

Hinweis: Das ultimative Ziel der Indexauswahl besteht darin, die Abfrage zu beschleunigen. Die oben genannten Grundsätze stellen die grundlegendsten Richtlinien dar, Sie können sich jedoch nicht an sie halten. Die Leser sollten diese Praxis in ihrem zukünftigen Studium und ihrer Arbeit weiterführen. Analysieren und beurteilen Sie die tatsächliche Situation der Anwendung und wählen Sie die am besten geeignete Indizierungsmethode aus.

Nehmen wir beispielsweise an, Sie entwickeln ein Mitgliedskartensystem für ein Einkaufszentrum. Dieses System verfügt über eine Mitgliedertabelle (die allgemeinen Felder sind wie folgt):

Mitgliedsnummer INT
Mitgliedsname VARCHAR(10)
Mitglieds-ID-Nummer VARCHAR(18)
Telefonnummer des Mitglieds VARCHAR(10)
Mitgliedsadresse VARCHAR(50)
Anmerkungen der Mitglieder TEXT

Anschließend wird diese Mitgliedsnummer mit PRIMARY als Primärschlüssel verwendet

Wenn Sie einen Index für Mitgliedsnamen erstellen möchten, dann ist es ein normaler INDEX

Wenn Sie einen Index für die Mitglieds-ID-Nummer erstellen möchten, können Sie UNIQUE (eindeutig, keine Duplizierung zulässig) wählen.

Wenn Sie einen Index für Mitgliedsnotizeninformationen erstellen müssen, können Sie FULLTEXT für die Volltextsuche auswählen.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Wenn Sie mehr darüber erfahren möchten, schauen Sie sich bitte die folgenden Links an

Das könnte Sie auch interessieren:
  • Zusammenfassung der MySQL-Indextypen sowie Tipps und Vorsichtsmaßnahmen bei der Verwendung
  • PHP+MySQL Baumstruktur (unbegrenzte Klassifizierung) Datenbankdesign 2 Beispiele
  • So vergleichen Sie zwei Datenbanktabellenstrukturen in MySQL
  • Verschiedene Arten von MySQL-Indizes
  • Lösung für Indexfehler, die durch implizite MySQL-Typkonvertierung verursacht werden
  • MySQL-Datenbanktabellendesign mit Baumstruktur
  • Generieren Sie ein MySQL-Datenbankstrukturdokument mit Python
  • Mysql-Datenbankstruktur und Indextyp

<<:  Eine kurze Analyse des Unterschieds zwischen statisch und selbst in PHP-Klassen

>>:  Perfektes Installationstutorial für das Dualsystem Win10 + Ubuntu 16.04 [detailliert]

Artikel empfehlen

Beispielmethode zum Bereitstellen eines React-Projekts auf Nginx

Testprojekt: react-demo Klonen Sie Ihr React-Demo...

Detaillierte Erklärung zur Verwendung von Vue-Mixin

Inhaltsverzeichnis Verwendung von Vue-Mixin Daten...

Beispielanalyse der Verwendung von GROUP_CONCAT in MySQL

Dieser Artikel beschreibt anhand eines Beispiels ...

Online- und Offlineinstallation von Docker und allgemeine Befehlsvorgänge

1. Testumgebung Name Version centos 7.6 Docker 18...

Ist ein Design, das den Designspezifikationen entspricht, ein gutes Design?

In den letzten Jahren meiner Karriere habe ich an...

Die beste Erklärung zu HTTPS

Guten Morgen allerseits, ich habe meinen Artikel ...

So vergessen Sie das Passwort von Jenkins in Linux

1. Jenkins-Installationsschritte: https://www.jb5...

Details zu 7 Arten der Komponentenkommunikation in Vue3

Inhaltsverzeichnis 1. Kommunikationsmethode für V...

Erstellen Sie ein privates Docker-Warehouse (selbstsignierte Methode)

Um die von uns erstellten Images zentral zu verwa...

Vor- und Nachteile von React Hooks

Inhaltsverzeichnis Vorwort Vorteil: Mangel: 1. Re...

W3C Tutorial (4): W3C XHTML Aktivitäten

HTML ist eine Hybridsprache, die zum Veröffentlic...

Detaillierte Analyse des Linux-Kernel-Makros container_of

1. Wie oben erwähnt Ich habe dieses Makro gesehen...