Moin,
Ich hab das Problem dass Suchvorgänge für ein und das selbe Wort manchmal weniger als 50ms brauchen, und manchmal über 60Sekunden, kann sich das jemand erklären?
EXPLAIN auf Deine Query.
OK, ich geb einfach mal ein Beispiel, da ich mit dem EXPLAIN nich viel anfangen kann...
Query: EXPLAIN SELECT * FROM stories WHERE MATCH (inhalt, titel) AGAINST ('weekend') AND MATCH (inhalt, titel) AGAINST ('party') LIMIT 0, 10
Ausgabe:
Table: stories; type: fulltext; possible_keys: titel; key: titel; key_len: 0; ref:; rows: 1; Extra: where used, Using filesort;
Aufbau der Tabelle
CREATE TABLE stories (
titel text NOT NULL,
inhalt text NOT NULL,
(...)
FULLTEXT KEY titel (titel,inhalt)
) TYPE=MyISAM;
Zeilengröse: ~ 3,4kb
Zeilenzahl: 61.069
So, und dieser Suchvorgang hat nun 15 Sekunden gedauert!!
Ich finde Deine Datenbank winzig klein. Meine ist um gut eine Zehnerpotenz größer, aber ich habe Such-Zeiten meistens unterhalb einer Sekunde, selten im kleinen einstelligen Sekundenbereich.
(Und ich verwende auch mySQL-Fulltext, meine Text-Felder sind im Schnitt etwa 5 KB groß.)
Was für Indizes brauch ich?
Diejenigen, die Deine Statements beschleunigen.
Sollte ich dazu was best. wissen?
Viele Grüße
Michael
Dange :)
RFZ