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)
1. Laden Sie MySQL herunter Download-Adresse: htt...
1. Installation 1. MySQL herunterladen Download-A...
Wie debuggt man eine Seite auf dem iPad? Wenn Sie ...
Hallo zusammen, ich bin Liang Xu. Bei der Verwend...
【SQL】 Zusammenfassung der SQL-Paging-Abfragen Wäh...
Tatsächlich haben wir in letzter Zeit viel über W...
Nur 15 Zeilen CSS und Ihr iPhone stürzt ab Der Si...
Inhaltsverzeichnis Same-Origin-Richtlinie Ajax-An...
Ein gemeinsamer Index wird auch als zusammengeset...
Beim Konfigurieren des Domänennamens der Schnitts...
<br />Der Schriftsatz auf der Seite erfolgt ...
Verwenden Sie das KTL-Tool, um Daten von MySQL zu...
Kürzlich habe ich MySQL verwendet, um Tabellendat...
Hinweis: Alle Bilder in diesem Artikel stammen au...
Bei der Entwicklung begegnen wir häufig dieser Sit...