2009-08-20 13 views
0

Wie mit Anfragen beschäftigen wie:MySQL Volltext Performance-Lösung

select ... from ... where match(field1) against('someA') and match(field2) against('someB') limit 50 

Wenn die Ergebnisse von Zustand match (field1) gegen ('Somea') & Spiel (field2) gegen ('someB') sind beide riesige zurück , die gesamte Abfrage wird sehr, sehr langsam sein.

Eine Lösung dafür?

Antwort

0

Vielleicht Sphinx würde dieses Problem effizient für Sie lösen. Sphinx bietet leistungsstarke Volltextsuchfunktionen. Ich bin mir nicht sicher, ob das genau das ist, was Sie versuchen, aber es klingt nah.

1

Sie könnten einen weiteren FULLTEXT Index für die zwei Spalten field1 und field2 erstellen. Dann suchen für beide Suchbegriffe auf einmal mit:

MATCH(field1, field2) AGAINST ('+someA +someB') IN BOOLEAN MODE 

Natürlich könnte diese Zeilen finden, wo field1 enthält beide Suchbegriffe und field2 enthält keines von beiden. Ich bin mir nicht sicher über die genauen Anforderungen Ihrer App.