Heim > Datenbank > MySQL-Tutorial > MATCH AGAINST oder LIKE: Was ist besser für mehrspaltige Schlüsselwortsuchen in MySQL?

MATCH AGAINST oder LIKE: Was ist besser für mehrspaltige Schlüsselwortsuchen in MySQL?

Patricia Arquette
Freigeben: 2024-12-28 01:55:09
Original
804 Leute haben es durchsucht

MATCH AGAINST or LIKE: Which is Better for Multi-Column Keyword Searches in MySQL?

Auswahl zwischen MATCH AGAINST und LIKE für die Datenbanksuche

Bei Datenbankabfragen steht man vor dem Dilemma, die optimale Abfrage für die Suche auszuwählen Zeilen basierend auf bestimmten Schlüsselwörtern in mehreren Spalten. Diese Frage vergleicht zwei Ansätze:

MATCH AGAINST

Diese Abfrage verwendet die Volltextindizierung, um nach Dokumenten zu suchen, die die Schlüsselwörter „foo“ und „bar“ enthalten die angegebenen Spalten „foo_desc“ und „bar_desc.“ In MySQL-Versionen 5.6 und höher wird MATCH AGAINST für InnoDB-Tabellen unterstützt.

LIKE

Diese Abfrage verkettet die Werte aus den beiden Spalten und verwendet LIKE zur Ausführung eine Teilzeichenfolgensuche nach „foo“ und „bar“ im Ergebnis string.

Überlegungen zur Leistung

MATCH AGAINST zeigt eine überlegene Leistung bei MyISAM-Tabellen und nutzt Volltextindizes, um effizient nach Schlüsselwörtern zu suchen. Im Gegensatz dazu führt LIKE einen vollständigen Tabellenscan durch und durchsucht jede Zeile nach Schlüsselwörtern, was bei großen Datensätzen zeitaufwändig sein kann.

Einschränkungen von LIKE

LIKE ist nur wirksam, wenn es direkt auf eine Spalte angewendet wird (kein Funktionsergebnis), wenn das Suchmuster mit dem Anfang der Spalte übereinstimmt und wenn die Spalte indiziert ist. Andernfalls wird standardmäßig ein vollständiger Tabellenscan durchgeführt, was für große Datenmengen unpraktisch wird.

Nachteile von MATCH AGAINST

Eine Einschränkung von MATCH AGAINST in MySQL besteht darin, dass es Entspricht nur ganzen Wörtern. Daher wird eine Suche nach „bla“ nicht mit einer Spalte übereinstimmen, die „bla“ enthält, aber eine Suche nach „bla*“ wird sie finden.

Bevorzugter Ansatz

Basierend auf Leistungsüberlegungen und den Einschränkungen von LIKE ist MATCH AGAINST die bevorzugte Wahl für die Suche großer Datensätze nach Schlüsselwörtern in mehreren Spalten. Es nutzt die Effizienz der Volltextindizierung, um schnelle und genaue Ergebnisse zu liefern.

Das obige ist der detaillierte Inhalt vonMATCH AGAINST oder LIKE: Was ist besser für mehrspaltige Schlüsselwortsuchen in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage