Heim  >  Artikel  >  Datenbank  >  INSTR vs. LIKE in MySQL: Was ist effizienter für die String-Suche?

INSTR vs. LIKE in MySQL: Was ist effizienter für die String-Suche?

DDD
DDDOriginal
2024-11-20 02:29:01689Durchsuche

INSTR vs. LIKE in MySQL: Which is More Efficient for String Searching?

Leistungsvergleich: INSTR vs. LIKE

Wenn es um die Suche nach einer Zeichenfolge innerhalb einer MySQL-Spalte vom Typ „varchar“ geht, „ text', 'blob' usw., welche Methode effizienter ist: INSTR(columnname, 'mystring') > 0 oder Spaltenname LIKE '%mystring%'?

Die Antwort

VOLLTEXT-Suchen bieten die beste Leistung. Beim Vergleich von INSTR und LIKE sind jedoch beide Methoden bei regulären, nicht indizierten vollständigen Tabellenscans identisch.

Detaillierter Vergleich

In vom Autor durchgeführten Tests hat INSTR und LIKE schnitten gleichermaßen ab. Wenn jedoch eine Präfixsuche für eine indizierte Spalte mit LIKE und nur einem Suffix-Platzhalter (z. B. Spaltenname LIKE 'search%') durchgeführt wird, übertrifft sie INSTR deutlich.

Implementierung

Sowohl INSTR als auch LIKE scannen die Spalte von links nach rechts und vergleichen die Suchzeichenfolge mit den gespeicherten Daten. INSTR sucht nach einer genauen Übereinstimmung, während LIKE Platzhalterzeichen (% und _) für Teilübereinstimmungen zulässt.

Empfehlung

Für indizierte Spalten, bei denen kein Präfixabgleich erforderlich ist, INSTR und LIKE sind beide praktikable Optionen mit ähnlicher Leistung. Wenn Sie jedoch mit nicht indizierten Tabellen arbeiten oder nur nach Suffixen suchen, wird LIKE mit einem Suffix-Platzhalter für schnellere Ergebnisse empfohlen.

Das obige ist der detaillierte Inhalt vonINSTR vs. LIKE in MySQL: Was ist effizienter für die String-Suche?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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