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

Verwenden Sie das Firebug-Tool, um die Seite auf dem iPad zu debuggen

Wie debuggt man eine Seite auf dem iPad? Wenn Sie ...

5 Befehle zur Verwendung des Rechners in der Linux-Befehlszeile

Hallo zusammen, ich bin Liang Xu. Bei der Verwend...

Einige Tipps zum Website-Design

Tatsächlich haben wir in letzter Zeit viel über W...

Regeln für die Verwendung gemeinsamer MySQL-Indizes

Ein gemeinsamer Index wird auch als zusammengeset...

HTML Table Tag Tutorial (47): Verschachtelte Tabellen

<br />Der Schriftsatz auf der Seite erfolgt ...

So installieren Sie Windows Server 2008 R2 auf einem Dell R720-Server

Hinweis: Alle Bilder in diesem Artikel stammen au...

Analyse und Behandlung von Bildlaufleisten in HTML und eingebettetem Flash

Bei der Entwicklung begegnen wir häufig dieser Sit...