Eine Zusammenfassung der Fuzzy-Abfrage von MySQL wie

Eine Zusammenfassung der Fuzzy-Abfrage von MySQL wie

1. Allgemeine Verwendung:

(1) Mit % verwenden

% stellt ein Platzhalterzeichen für ein oder mehrere Zeichen dar, um beispielsweise die Daten abzufragen, die mit einem Großbuchstaben im Feldnamen beginnen:

(2) Verwendung mit

_ stellt ein Platzhalterzeichen mit nur einem Zeichen dar. Wenn Sie in der obigen Abfrage das % in _ ändern, werden Sie feststellen, dass nur die folgenden Daten gefunden werden können:

2. Die Verwendung ähnlicher Fuzzy-Abfragen führt bei großen Datenmengen zu Indexfehlern und Leistungsproblemen

(1) Vermeiden Sie Fuzzy-Abfragen, die mit % oder _ beginnen

Durch die Erläuterung des Ausführungsplans haben wir festgestellt, dass bei Verwendung einer Fuzzy-Abfrage der Index weiterhin gültig ist, wenn die Abfrage nicht mit % und _ beginnt

Wenn die Abfrage mit % oder _ beginnt, ist der Index ungültig.

(2) Verwendung von Überdeckungsindizes

Wenn sowohl die Abfragebedingungen als auch die Abfrageergebnisse Felder im Index sind, kann dieser Index als abdeckender Index bezeichnet werden. Zu diesem Zeitpunkt ist die Verwendung eines ähnlichen Fuzzy-Abfrageindex effektiv.

Der InnoDB-Primärschlüssel kann nicht zum Index hinzugefügt werden

Hinweis: Bei Verwendung eines überdeckenden Indexes ist die Länge des Feldes durch Anforderungen begrenzt. Wenn die Länge überschritten wird, wird der Index im Allgemeinen ungültig.

Wenn ich das Beschreibungsfeld in meine Abfrage einbeziehe, schlägt auch der abdeckende Index fehl (meine Datenbank wurde getestet und unterstützt nur Felder mit einer maximalen Länge von 255).

(3) Volltextindizierung nutzen

Erstellen Sie einen Volltextindex für das Feld und verwenden Sie dann match(...) versus(...) für die Suche.

Hinweis: Diese Methode zur Volltextindizierung funktioniert nur für englische Wörter und ist nicht benutzerfreundlich genug für chinesische Schriftzeichen. Sie müssen einige Konfigurationsänderungen an der MySQL-Konfigurationsdatei vornehmen, damit chinesische Schriftzeichen unterstützt werden.

(4) Verwenden Sie einige zusätzliche Volltextsuchmaschinen zur Lösung

Lucene, Solr, Elasticsearch usw.

Das Grundprinzip lautet: Ändern Sie ft_min_word_len=3 in der MySQL-Konfigurationsdatei in 1. (Wenn dieses Element nicht verfügbar ist, fügen Sie es einfach direkt hinzu), erstellen Sie dann ein neues Feld zum Speichern der Wortsegmentierungsergebnisse und erstellen Sie einen Volltextindex für dieses Feld. Implementieren Sie dann ein Wortsegmentierungsmodul, um das Wort „jeder ist gut“ in „jeder ist gut, jeder ist gut, jede Familie ist gut“ aufzuteilen. Verwenden Sie dann match .. against anstelle von like %%. Das Abfrageergebnis ist grundsätzlich dasselbe wie das Ergebnis von like (wenn die Wortsegmentierung sinnvoll ist), aber die Effizienz ist mindestens 10-mal höher als bei like.

Zusammenfassen

Dies ist das Ende dieses Artikels über MySQL-Fuzzy-Abfragen. Weitere relevante MySQL-Fuzzy-Abfragen finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Detaillierte Einführung in die Verwendung von MySql wie Fuzzy-Abfrage-Platzhaltern
  • So lösen Sie das Problem der langsamen Geschwindigkeit von MySQL wie bei Fuzzy-Abfragen
  • Implementierung einer Fuzzy-Abfrage wie %% in MySQL
  • So optimieren Sie die langsame Like-Fuzzy-Abfrage in MySQL

<<:  Eine kurze Diskussion über Makrotasks und Mikrotasks in js

>>:  So implementieren Sie Nginx Reverse Proxy und Load Balancing (basierend auf Linux)

Artikel empfehlen

Tutorial zur MySQL-Installation in der Linux-CentOS7-Umgebung

Detaillierte Einführung in die Schritte zur Insta...

Fallstricke basierend auf MySQL-Standardsortierregeln

Der Standardtyp varchar in MySQL ist case-insensi...

Docker+Selenium-Methode zur Realisierung automatischer Gesundheitsberichte

In diesem Artikel wird das Gesundheitsmeldesystem...

Implementierung der VUE-Anzeige unendlicher Ebenenbaum-Datenstrukturen

Inhaltsverzeichnis Rekursiver Aufruf der Komponen...

Ein kurzes Verständnis der MySQL SELECT-Ausführungsreihenfolge

Die vollständige Syntax der SELECT-Anweisung laut...

js verwendet FileReader zum Lesen lokaler Dateien oder Blobs

Inhaltsverzeichnis FileReader liest lokale Dateie...

So verwenden Sie Makros in JavaScript

In Sprachen werden häufig Makros zur Implementier...

Implementierung der Benutzerregistrierungsfunktion mit js

In diesem Artikelbeispiel wird der spezifische Co...

So verwenden Sie async und await richtig in JS-Schleifen

Inhaltsverzeichnis Übersicht (Loop-Modus – Allgem...

Mysql-Optimierung Zabbix-Partitionsoptimierung

Der größte Engpass bei der Verwendung von Zabbix ...

Grundlegendes Handbuch für Webdesign 216 Websichere Farben

Die Farbdarstellung auf einer Webseite wird von ve...

Implementierungsprozess des Lupeneffekts im Javascript-Beispielprojekt

Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...