Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist ein Volltextindex und wann sollte ich ihn verwenden?

In Datenbanken werden Indizes normalerweise verwendet, um die Leistung zu verbessern, wenn Sie nach etwas suchen, das in Ihrer where-Klausel definiert ist. Wenn es jedoch darum geht, Text zu filtern, z. Verwenden Sie so etwas wie WHERE TextColumn LIKE '%searchstring%' dann sind Suchen langsam, weil die Art und Weise, wie reguläre Datenbankindizes funktionieren, für Übereinstimmungen mit dem „gesamten Inhalt“ einer Spalte optimiert ist und nicht nur mit einem Teil davon. Insbesondere kann die LIKE-Suche, die Wildcards enthält, keinerlei Index verwenden.

Wie im Kommentar unten erwähnt, benötigt MySQL den MATCH () ... AGAINST Syntax zum Suchen in einem Volltextindex; Übrigens variiert dies je nach Datenbankanbieter. In MS SQL können Sie CONTAINS verwenden Denken Sie also daran, wenn Sie planen, auch andere Datenbanken zu unterstützen.

Volltextindizes funktionieren besser für normalen Text, da sie für diese Art von Spalten optimiert sind. Sehr vereinfacht:Sie teilen den Text in Wörter auf und erstellen einen Index über die Wörter und nicht über den gesamten Text. Dies funktioniert viel schneller für die Textsuche, wenn nach bestimmten Wörtern gesucht wird.