Ich habe genau das gleiche Problem.
Diese Abfrage z.B. braucht 7 Sekunden:
Code: Alles auswählen
SELECT m.word_id
FROM phpbb_search_wordmatch m, phpbb_search_wordlist w
WHERE w.word_text
IN (
'aber', 'alle', 'auch', 'baby', 'bergische', 'beweisen', 'bin', 'chickas', 'city', 'dafür', 'darf', 'das', 'denk', 'der', 'die', 'durchs', 'ein', 'einem', 'ende', 'fahre', 'fahrenm', 'freue', 'fän', 'gar', 'gebe', 'gefährdet', 'geld', 'gesunden', 'gut', 'habe', 'hier', 'hör', 'ich', 'immer', 'irgenteinem', 'ist', 'kaputt', 'kostet', 'kurve', 'kurz', 'köönt', 'langsam', 'leben', 'lebens', 'liebe', 'liebsten', 'lings', 'mache', 'machen', 'macht', 'mal', 'man', 'manchmal', 'maße', 'mein', 'meines', 'mich', 'mir', 'musik', 'mußte', 'nicht', 'noch', 'nur', 'rasen', 'recht', 'schau', 'schon', 'schön', 'sehr', 'sicher', 'sie', 'spass', 'spiele', 'toll', 'und', 'verzeiehen', 'viel', 'vieleicht', 'von', 'weil', 'wenig', 'wenn', 'wie', 'will', 'wir', 'zerbeult', 'übertreiben'
)
AND m.word_id = w.word_id
GROUP BY m.word_id
HAVING COUNT( m.word_id ) >249000
Warum werden die Wörter von der search_stopwords hier nicht vorher herausgefilter?
Übrigens bringt die Abfrage Null Ergebnisse.
Meine search_wordlist ist 7,5 MB groß und meine search_wordmatch 128 MB.
Da muss echt was dran gemacht werden. Diese Abfrage drückt den Server tierisch in die Knie.
Gruß
EDIT:
Der hier schießt echt den Vogel ab:
Code: Alles auswählen
# Query_time: 42 Lock_time: 0 Rows_sent: 0 Rows_examined: 1155522
SELECT m.word_id
FROM phpbb_search_wordmatch m, phpbb_search_wordlist w
WHERE w.word_text IN ('05', '6', '202', '300', '1992', 'aber', 'abgeht', 'alle', 'also', 'anderen', 'anfragen', 'aol', 'art', 'aus', 'ausen', 'auser', 'auspuff', 'auto', 'bastler', 'beifahrer', 'besitzt', 'besseren', 'bitte', 'blendstreifen', 'brief', 'bösenblick', 'civic', 'com', 'das', 'daten', 'db', 'den', 'der', 'die', 'ein', 'eine', 'einen', 'eingetragen', 'elektronisch', 'elektronische', 'elektronisches', 'er', 'fahrer', 'fahrzeugschein', 'fisierte', 'flo', 'floriracer0', 'form', 'für', 'gang', 'gebrochen', 'gekauft', 'gerne', 'geschweißt', 'gibt', 'gruß', 'gut', 'habe', 'haben', 'hallo', 'hat', 'heut', 'ist', 'kein', 'können', 'lackiert', 'mehr', 'mein', 'meinen', 'metallic', 'motor', 'mängeln', 'müsste', 'nicht', 'nierenbeckenschutz', 'nun', 'oberkante', 'photos', 'ps', 'quot', 'recaro', 'rennboliden', 'rohr', 'rost', 'rote', 'sauber', 'scheibe', 'scheiben', 'schiebedach', 'sichtbar', 'sichtfeld', 'sieht', 'sind', 'sindblau', 'sitze', 'sitzheitzung', 'sitzpolster', 'sonderausstatung', 'sowas', 'sowie', 'spiegel', 'sportkupplung', 'sportler', 'sprung', 'standgeräusch', 'tachonadeln', 'tage', 'thema', 'und', 'unsachgemäs', 'unterboden', 'verkaufe', 'verklebt', 'verliert', 'verstellbare', 'von', 'was', 'werden', 'wesentlichen', 'wie', 'wird', 'worden', 'wurde', 'zeitgleich', 'zugemailt', 'zum', 'zusammen', 'zwar')
AND m.word_id = w.word_id
GROUP BY m.word_id
HAVING COUNT(m.word_id) > 249001;
42 Sekunden ist untragbar für den Server. Warum tauchen da überhaupt Wörter auf, die eh in der stopword-Liste sind bzw. die weniger als 3 Zeichen haben?!