Heim >Datenbank >MySQL-Tutorial >Wie kann ich mehrspaltige LIKE-Abfragen in MySQL beschleunigen?
Beschleunigung von LIKE-Abfragen für mehrere Spalten in MySQL
Bei häufigen SELECT ... LIKE '%text%'-Abfragen für a Bei einer mehrspaltigen MySQL-Tabelle fragt man sich natürlich, ob die Indizierung die Leistung verbessern kann. Leider können Indizes, die auf von links beginnende Zeichen verweisen, bei LIKE-Anfragen „%text%“ nicht hilfreich sein, da der Platzhalter unterschiedliche Zeichen vor dem angegebenen Text zulässt.
Anstatt sich auf Indizes zu verlassen, empfiehlt MySQL die Verwendung Volltextsuche (FTS) für MyISAM-Tabellen. FTS indiziert Wörter innerhalb von Textspalten und ermöglicht so eine effiziente Suche, selbst wenn der Zieltext irgendwo in der Spalte erscheint.
Alternative Optionen für Nicht-MyISAM-Tabellen
Für Tabellen, die es sind Nicht MyISAM-basiert, Sie können ein benutzerdefiniertes Indexierungssystem implementieren. Erstellen Sie eine Indextabelle, die Wörter zusammen mit ihren entsprechenden IDs in der tatsächlichen Tabelle speichert. Dieser Ansatz ermöglicht eine effiziente Suche, indem die LIKE-Abfrage „%text%“ in einzelne Wortsuchen zerlegt wird.
Auswirkungen auf Festplattennutzung und Leistung
FTS-Indizes verbrauchen mehr Speicherplatz im Vergleich zu herkömmlichen Indizes. Das Einfügen und Löschen von Datensätzen hat jedoch keinen wesentlichen Einfluss auf die Leistung des FTS-Index.
Update: Volltextsuche für InnoDB-Tabellen
Ab MySQL 5.6, Volltext Die Suchfunktion ist auch für InnoDB-Tabellen verfügbar und bietet eine leistungsstarke Suchlösung, die den Anforderungen Ihrer Abfrage entspricht.
Das obige ist der detaillierte Inhalt vonWie kann ich mehrspaltige LIKE-Abfragen in MySQL beschleunigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!