Heim  >  Artikel  >  Datenbank  >  INSTR vs. LIKE in MySQL: Welche String-Matching-Methode ist schneller?

INSTR vs. LIKE in MySQL: Welche String-Matching-Methode ist schneller?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-20 03:12:02979Durchsuche

INSTR vs. LIKE in MySQL: Which String Matching Method Is Faster?

Leistungsanalyse: INSTR- vs. LIKE-String-Matching in MySQL

Beim Testen auf das Vorhandensein eines Strings in einer MySQL-Spalte mit variabler Zeichenlänge stellt sich die Frage optimale Methode für Effizienz und Geschwindigkeit. Zwei gängige Ansätze sind:

1. INSTR(Spaltenname, 'mystring' ) > 0
2. Spaltenname LIKE '%mystring%'

Leistungsbewertung

In Bezug auf die Geschwindigkeit zeigten unsere Tests ein überraschendes Ergebnis: Sowohl INSTR als auch LIKE schneiden bei der Prüfung auf das Vorhandensein von Teilzeichenfolgen identisch ab. Zum Beispiel:

INSTR(Name,'search') > 0
LIKE '%search%'

Beide Abfragen durchsuchten die gesamte Tabelle und dauerten etwa 5,54 Sekunden. Wenn jedoch eine Präfixsuche für eine indizierte Spalte durchgeführt wird, übertrifft der LIKE-Operator mit nur einem Suffix-Platzhalter INSTR deutlich:

LIKE 'search%'

Diese optimierte Präfixsuche dauerte nur 3,88 Sekunden.

Über INSTR hinaus und LIKE

Zusätzlich zu INSTR und LIKE unterstützt MySQL auch VOLLTEXT-Suchen für eine verbesserte Leistung. Diese Suchvorgänge sind jedoch am effizientesten, wenn die Tabellenspalte mit FULLTEXT indiziert ist und die gesuchte Zeichenfolge am Anfang der Spalte angezeigt wird.

Überlegungen

In der Praxis besteht die Wahl zwischen INSTR und LIKE hängen vom jeweiligen Anwendungsfall ab:

  • Bei vollständigen Tabellenscans funktionieren INSTR und LIKE ähnlich.
  • Bei Präfixsuchen in indizierten Spalten LIKE mit einem Suffix-Platzhalter ist schneller.
  • Für komplexere oder anspruchsvollere Suchanforderungen sollten VOLLTEXT-Suchen in Betracht gezogen werden.

Das obige ist der detaillierte Inhalt vonINSTR vs. LIKE in MySQL: Welche String-Matching-Methode ist schneller?. 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