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:
|
<<: Eine kurze Diskussion über Makrotasks und Mikrotasks in js
>>: So implementieren Sie Nginx Reverse Proxy und Load Balancing (basierend auf Linux)
Detaillierte Einführung in die Schritte zur Insta...
Der Standardtyp varchar in MySQL ist case-insensi...
In diesem Artikel wird das Gesundheitsmeldesystem...
Inhaltsverzeichnis Rekursiver Aufruf der Komponen...
Die vollständige Syntax der SELECT-Anweisung laut...
Inhaltsverzeichnis FileReader liest lokale Dateie...
In Sprachen werden häufig Makros zur Implementier...
In diesem Artikelbeispiel wird der spezifische Co...
Windows 10 unterstützt jetzt das Linux-Subsystem....
Inhaltsverzeichnis Übersicht (Loop-Modus – Allgem...
Bei Verwendung des Layouts justify-content:space-...
Der größte Engpass bei der Verwendung von Zabbix ...
Statische Dateien Nginx ist für seine hohe Leistu...
Die Farbdarstellung auf einer Webseite wird von ve...
Inhaltsverzeichnis Vorwort Fall: Nachahmung des L...