Seite 1 von 2

Suchfunkt.: "native" - "mysql" / Untersc

Verfasst: 15.07.2008 10:01
von uwe.ha
Hallo zusammen,

es geht um die beiden Suchfunktionen
- Fulltext native
- Fulltext mysql
die ich im ACP auswählen kann.

Wie unter http://www.phpbb.de/viewtopic.php?t=156295 (und weiteren) beschrieben, sucht "native" in der (großen) Tabelle _search_*, und "mysql" sucht direkt in der Tabelle "_posts". Das ist soweit klar, aber:
Was ist "besser"; schneller, belastet den Server weniger, bzw. was sind die wesentlichen Vor- / Nachteile?

Bisher dachte ich, dass "native" schneller und weniger serverbelastend ist, allerdings hat meine Tabelle _posts 80.000 Einträge und ist NUR 64 MB groß, aber _search_wordlist hat 2,7 Mio (!!) Einträge und ist mit 90 MB sogar GRÖSSER, als _posts.

Habe gerade mal den "mysql"-Index erstellt. Die Tabelle _posts ist dadurch (wegen zusätzlicher Indexfelder) um rund 100 MB auf 163 MB gewachsen. Auch wenn ich nun die "native"-Tabelle _search* mit rund 90 MB lösche, habe ich also KEINEN Speicherplatzgewinn.

PROBLEM + FRAGE: Und ich sehe gerade, dass die "native"-Suche Wörter aus 3 Buchstaben findet (genau wie im ACP eingestellt), die "mysql"-Suche aber NICHT :( ... das wäre - zumindest für mich - ein wesentlicher Vorteil von "native" ... oder kann man irgendwo einstellen, dass "mysql" auch Wörter ab 3 Zeichen findet?

Verfasst: 15.07.2008 10:26
von PhilippK
Von der Last etc. sollte die MySQL-Suche effizienter sein - denn per Datenbank geht so was besser als manuell in PHP programmiert. Wobei es bei Indizes durchaus sein kann, dass du eine bessere Last durch mehr Speicherplatz erkaufst.
Vorteil der Native-Methode ist sicherlich ihre Unabhängigkeit von der Datenbank und ihre Konfigurierbarkeit. Zwar kannst du auch die MySQL-Suche anpassen, dies geht aber nur auf Anwendungs-Ebene: http://dev.mysql.com/doc/refman/5.0/en/ ... uning.html. Wenn du keinen eigenen Server hast, wirst du hier also keine Änderungen vornehmen können.

Gruß, Philipp

Verfasst: 15.07.2008 10:44
von uwe.ha
Hallo Philipp,

Danke für die Erklärung!

Kann man sagen ab welchen Bedingungen (Größe des Forums, Anzahl der Postes, Größe der DB, o.ä.) die eine oder andere Variante eindeutig zu bevorzugen ist (eigenen anpassbaren Server hätte ich)? ... oder sind die (Performance-)Unterschiede so gering, dass es eher "Ansichtssache" ist?

Verfasst: 09.10.2008 02:22
von Seether
Ich möchte diese Frage noch mal aufgreifen.

Welche Variante würdet ihr bei einem Forum wie phpbb.de wählen?

Habe jetzt sowohl einige Themen auf phpbb.de und phpbb.com gelesen bin aber immer noch nicht schlauer.
=>mysql wird nicht von Version unterstützt
=>native benutzt die riesigen such tabellen
=>mysql benötigt diese nicht
=>mysql erstellt einen index

Die Größe der Tabellen ist mir recht egal. Ich suche die schnellste Lösung für ein Forum wie diesem hier.
Auf phpbb.com hat jemand geschrieben, dass die mysql-Suche bei größeren Foren möglicherweise ungünstig wird. Dies hat mich etwas verwirrt.

Verfasst: 09.10.2008 06:09
von MartectX
Dann weise ich an dieser Stelle mal noch hierauf hin: http://code.phpbb.com/projects/show/11

Verfasst: 11.10.2008 11:03
von Seether
Hallo Leute,

ich habe einmal den Index als fulltext native erstellen lassen. Irgendwie hatte ich aber das Gefühl, dass einige Beiträge fehlten. Indizierungsgeschwindigkeit lag bei 40 Beiträge in der Sekunde.

Habe dann den Index gelöscht und dann nochmal neu erstellen lassen. Jetzt funktioniert das ganze aber nicht mehr. Index ist immer leer. Geschwindigkeit angeblich 22000 Beiträge in der Sekunde...

Hatte jemand schon mal das Problem?

Verfasst: 12.10.2008 12:53
von Seether
So nach endlosen Stunden wurde der Suchindex nun doch erstellt.
Allerdings ist mir aufgefallen, dass die Suche ziemlich lange braucht. Sehr lange sogar. 30 Sekunden bei beliebten Wörtern sind keine Seltenheit.
Insgesamt sind 600k Wörter im Such-Index enthalten.

Meint ihr mit fulltext mysql wäre es schneller?

Verfasst: 12.10.2008 20:41
von Dr.Death
Ich selbst bevorzuge die Fulltext MySQL Suche...

Verfasst: 12.10.2008 22:50
von Seether
Dr.Death hat geschrieben:Ich selbst bevorzuge die Fulltext MySQL Suche...
Ok ...würdest Du mir auch noch etwas zur Beitragsanzahl und/oder Anzahl Suchwörter sagen damit ich das vergleichen kann?

Verfasst: 16.10.2008 12:37
von Seether
MartectX hat geschrieben:Dann weise ich an dieser Stelle mal noch hierauf hin: http://code.phpbb.com/projects/show/11
Gibt es eine Anleitung wie man es mit phpBB3 kombiniert?