Wordlist Wordmatch mysql Probleme
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
-
- Mitglied
- Beiträge: 52
- Registriert: 15.01.2003 21:55
- Kontaktdaten:
-
- Mitglied
- Beiträge: 52
- Registriert: 15.01.2003 21:55
- Kontaktdaten:
Hier ist es:
http://www.klein-putz.de/log/slow-query.log
Allerdings hält es sich nach dem Auskommentieren der remove_common echt in Grenzen. Läuft das Log aber mehr als 4 oder 5 Tage, ist es auch schon wieder knapp 1 MB groß...
Grüße,
Chrischn
http://www.klein-putz.de/log/slow-query.log
Allerdings hält es sich nach dem Auskommentieren der remove_common echt in Grenzen. Läuft das Log aber mehr als 4 oder 5 Tage, ist es auch schon wieder knapp 1 MB groß...
Grüße,
Chrischn
-
- Mitglied
- Beiträge: 153
- Registriert: 11.10.2003 12:33
- Kontaktdaten:
Du kannst in der search.php natürlich noch die Zeile
löschen, da dies ja nun sowieso nicht mehr genutzt wird. Die Verbesserung bewegt sich aber im hundertstel-Bereich, wird also nicht viel bringen.
Wär mal interessant zu gucken ob sich noch andere Queries dazu gesellen, oder ob es nur dabei bleibt.
Denn die Qeury kann man sonst nicht weiter optimieren. Es sind indices auf den genutzten Feldern, und die werden bei der Abfrage auch benutzt. Ich würde da allenfalls noch gucken ob man bei der Optimierung von mysql noch was drehen kann ( evtl. zugewiesener Speicher?), denn die Queries machen bei den anderen mir bekannten Boards nun keine grossen Schwierigkeiten (da sollten erstmal andere Flaschenhälse kommen).
Code: Alles auswählen
AND w.word_common <> 1
Wär mal interessant zu gucken ob sich noch andere Queries dazu gesellen, oder ob es nur dabei bleibt.
Denn die Qeury kann man sonst nicht weiter optimieren. Es sind indices auf den genutzten Feldern, und die werden bei der Abfrage auch benutzt. Ich würde da allenfalls noch gucken ob man bei der Optimierung von mysql noch was drehen kann ( evtl. zugewiesener Speicher?), denn die Queries machen bei den anderen mir bekannten Boards nun keine grossen Schwierigkeiten (da sollten erstmal andere Flaschenhälse kommen).
-
- Mitglied
- Beiträge: 14
- Registriert: 31.03.2003 15:41
- Wohnort: Rostock
Hallo Leute,
In Bezug auf die Suchtabellen, habe ich festgestellt, dass es in der search_wordmatch-Tabelle zu Doppeleinträgen kommt. Selbst nach einer gestrigen Durchsicht und Entfernung von Doppeleinträgen sind heute schon wieder 120 von über 420.000 Einträgen doppelt gespeichert.
Nach dem Durchlauf des Database Maintenance kommt es zur Meldung:
Ich habe "immer noch" Version 2.0.4 installiert, so frei nach Murphy "don't tuch"
Macht es dann nicht Sinn von vorherein einen eindeutigen Schlüssel über die Felder post_id und word_id zu setzen?
Kann eigentlich was passieren, wenn ich die doppelten rausfische und ich nachträglich den Index setze?
Gleich in diesem Zusammenhang mit Vermeidung von unnötigen Datenaufkommen mal eine Frage an die Spezies. Ich programmiere schon seit einigen Jahren auf Datenbank, z.B. Access und MySql und deshalb drängt sich mir die Frage auf, warum die Tabelle posts und posts_text getrennt gespeichert werden. Bei mir haben beide die gleiche Anzahl von Datensätzen?
In Bezug auf die Suchtabellen, habe ich festgestellt, dass es in der search_wordmatch-Tabelle zu Doppeleinträgen kommt. Selbst nach einer gestrigen Durchsicht und Entfernung von Doppeleinträgen sind heute schon wieder 120 von über 420.000 Einträgen doppelt gespeichert.
Nach dem Durchlauf des Database Maintenance kommt es zur Meldung:
Code: Alles auswählen
Checking for unnecessary search words
Nothing to do :-)

Macht es dann nicht Sinn von vorherein einen eindeutigen Schlüssel über die Felder post_id und word_id zu setzen?
Kann eigentlich was passieren, wenn ich die doppelten rausfische und ich nachträglich den Index setze?
Gleich in diesem Zusammenhang mit Vermeidung von unnötigen Datenaufkommen mal eine Frage an die Spezies. Ich programmiere schon seit einigen Jahren auf Datenbank, z.B. Access und MySql und deshalb drängt sich mir die Frage auf, warum die Tabelle posts und posts_text getrennt gespeichert werden. Bei mir haben beide die gleiche Anzahl von Datensätzen?
-
- Mitglied
- Beiträge: 153
- Registriert: 11.10.2003 12:33
- Kontaktdaten:
Eigentlich sollten keine doppelten drin sein. Vielleicht hast du einen Bug drin, dass beim editieren die alten Einträge nicht entfernt werden? Hast du Mods eingebaut?
Oder aber die Wörter kommen mehrfach im Beitrag vor? Ich weiss nicht wie das genaue Verhalten von phpbb da ist, aber ich vermute mal die doppelten Worte in einem Beitrag werden nicht rausgefischt.
Der Split der posts_table und posts_text_teable hat performance-Gründe. Weil die posts_table klein bleibt und auf die Daten dadrin häufiger zugegriffen werden muß, als auf die posts_text-Daten. Es lohnt sich trotz des Overheads für Joins und mehr inserts. AFAIK haben sie selber an einer Stelle mal gesagt, dass sie beides getestet hätten, und es so eben schneller war.
Oder aber die Wörter kommen mehrfach im Beitrag vor? Ich weiss nicht wie das genaue Verhalten von phpbb da ist, aber ich vermute mal die doppelten Worte in einem Beitrag werden nicht rausgefischt.
Der Split der posts_table und posts_text_teable hat performance-Gründe. Weil die posts_table klein bleibt und auf die Daten dadrin häufiger zugegriffen werden muß, als auf die posts_text-Daten. Es lohnt sich trotz des Overheads für Joins und mehr inserts. AFAIK haben sie selber an einer Stelle mal gesagt, dass sie beides getestet hätten, und es so eben schneller war.
-
- Mitglied
- Beiträge: 14
- Registriert: 31.03.2003 15:41
- Wohnort: Rostock
eigentlich nur Map-Mod.R. U. Serious hat geschrieben:Hast du Mods eingebaut?
Wäre die einzige logische Erklärung. Was ist dann bei Mammutpostings ??doppelten Worte in einem Beitrag werden nicht rausgefischt
Aber die Frage jetzt rein retorisch

DankeSplit der posts_table und posts_text_teable hat performance-Gründe
-
- Mitglied
- Beiträge: 153
- Registriert: 11.10.2003 12:33
- Kontaktdaten:
Ich hab das nochmal getestet. Folgende Observationen:
- Multiple Worte in einem Beitrag werden nur einmal in die match-table eingetragen
- idR kommt jede Kombination nur einmal vor.
- Dort wo es doppelte Kombinationen gibt, bruacht man den Post nur zum editieren öffnen und wieder speichern, dann sind die doppelten einträge weg.
Daher schliesse ich, dass die doppelten Einträge im mathc-table durch unregelmässigen im db-betrieb, beim gleichzeitigen Editieren o.ä. auftreten. Bei unseren ca. 2 Millionen Einträgen war das häufigste Vorkommen von einer einzigen Kombination 4 mal, und das beschränkte sich auf genau 2 Beiträge ( aus ca. 60.000), Bei allen übrigen doppelten war es 2 mal (das waren schon eine ganze Menge mehr....)
Grob überschlagen könnten wir durch eliminieren von doppelten Einträgen, ca. 100.000 (von ca. 2 Millionen) Einträge löschen, also 0,5%
Das war mir dann weiteren Aufwand nicht wert...
- Multiple Worte in einem Beitrag werden nur einmal in die match-table eingetragen
- idR kommt jede Kombination nur einmal vor.
- Dort wo es doppelte Kombinationen gibt, bruacht man den Post nur zum editieren öffnen und wieder speichern, dann sind die doppelten einträge weg.
Daher schliesse ich, dass die doppelten Einträge im mathc-table durch unregelmässigen im db-betrieb, beim gleichzeitigen Editieren o.ä. auftreten. Bei unseren ca. 2 Millionen Einträgen war das häufigste Vorkommen von einer einzigen Kombination 4 mal, und das beschränkte sich auf genau 2 Beiträge ( aus ca. 60.000), Bei allen übrigen doppelten war es 2 mal (das waren schon eine ganze Menge mehr....)
Grob überschlagen könnten wir durch eliminieren von doppelten Einträgen, ca. 100.000 (von ca. 2 Millionen) Einträge löschen, also 0,5%
Das war mir dann weiteren Aufwand nicht wert...

ich hab mal ne frage, wieso leert ihr denn diese tabelle nicht einmal im monat, oder nur die hälfte, denn 300 mb nur für die blöde search tabelle is ne menge, das ist das, was ich zur zeit zur verfügung habe, zwar werde ich auf 1gb aufrüsten, doch das is mir einfach zu viel, es wäre praktisch wenn man alle 4 wocehn die hälfte der tabelle entleert, so wird sie nicht so wahnsinnig gross.
Proud Admin & Webmaster of http://www.broxx-com.de
-
- Mitglied
- Beiträge: 153
- Registriert: 11.10.2003 12:33
- Kontaktdaten:
Weil ohne die Tabellen die Suche nicht funktioniert. Wenn man ein Board hat was hauptsächlich durch Small-Talk und schnelles posten lebt, dann ist das zwar eine Prima-Lösung, aber für viele Boards die sich bestimmten Sachthemen zuwenden, wäre es fatal wenn die Suche nicht mehr ginge:Shadowman hat geschrieben:ich hab mal ne frage, wieso leert ihr denn diese tabelle nicht einmal im monat,
- erstens wäre alles gute/wertvolle geschriebene "Verloren"
- zweitens gäbe es nichts worauf man die Newbies hinweisen könnte

Im Einzelfall gibt es also sicherlich Leute die diese Tabellen auch löschen.
