RFZ: Große Datenbank organisieren

Beitrag lesen

Hoi,

ein AND über zwei FULLTEXT-Zugriffe kann natürlich einen impliziten JOIN über beliebig viele Zeilen produzieren.
Möglicherweise bekommst Du am Ende nur 10 Treffer, aber vorher hattest Du 1000 Treffer für "weekend" und 4000 für "party", und die mußten miteinander ausmultipliziert werden, um die Schnittmenge zu berechnen. Ein AND über schlechte Suchbegriffe kann sehr teuer sein - und weit über 90% der Verarbeitungszeit findet ggf. außerhalb der Einflußnahme Deines FULLTEXT-Index statt.

»»

Mach mal die beiden Einzelsuchen (ohne Trefferausgabe) und miß deren Dauer - dann weißt Du, wie teuer das AND war.

OK, "weekend" 5,996 Sekunden, "party" 17,220 Sekunden "weekend party" 13,555 Sekunden. Was soll mir das nun wieder sagen? Ich glaub eher ich sollte meinen Hoster dafür verantwortlich machen, ich glaub die Server sind einfach zu sehr überlastet...
Ich glaub das AND macht dabei nie viel unterschied, sonst wär mir das auch mal aufgefallen. Ob jetzt ein oder mehrere Suchbegriffe, es bleibt langsam...

Ich habe etwas sehr ähnliches wie Du hier produktiv laufen. Zu Vermeidung Deines Problems habe ich eine blacklist über "schlechte" Suchbegriffe; wenn auf dieser beispielsweise "party" stehen würde, dann würde meine Suchmaschine nur über "weekend" suchen und dann alle Treffer explizit nach "party" scannen (in einem zweiten Durchgang). Das kann eventuell deutlich schneller sein, wenn zwischen beiden Suchbegriffen mindestens eine Zehnerpotenz an Treffern liegt (der Trick liegt also darin, sich ein Programm zu schreiben, was eine "vernünftige" blacklist berechnet).
Aber ein System, das _nur_ mit schlechten Suchbegriffen arbeitet, kriegst Du mit FULLTEXT und AND nicht wirklich performant hin.

Naja, mal schaun ob ich für sowas die Zeit finde :)
Aber danke für die Info, is ne gute Idee!

Viele Grüße
      Michael

cu RFZ