[Wikide-l] Re: mediawiki-bausteine als navigationselemente

Ulrich Fuchs mail at ulrich-fuchs.de
Sa Feb 28 10:24:23 UTC 2004


> > Wozu werden beispielsweise alle Artikel in einer Datenbank eines
> > Datenbankmanagementsystems wie MySQL abgelegt?
>
> Diese Frage kommt auf wikitech-l immer wieder und wieder auf. Wir
> brauchen das wirklich nicht jede Woche von Neuem durchzukauen. RDBMSe
> haben ihre klaren Vorteile, und Wiki-Systeme, die auf Dateien basieren
> (wie Twiki und MoinMoin) sind für Riesenwebsites wie Wikipedia unbrauchbar.


Die Frage bezog sich nicht aufs RDBMS (das ist in der Tat für unsere 
größenordnung zwingend), sondern auf mySQL im speziellen - für unsere 
Größenordnung wird das Ding nämlich langsam zu klein. Die Grundkritik war 
eigentlich, dass die Software keine Abstraktionsschnittstelle von der 
Datenbank hat. Sie benutzt native mySQl-Features, und die machen es extrem 
schwierig, jetzt auf eine andere Datenbank (z.b. PostgresSQL) zu wechseln, 
die mit dem Datenvolumen besser klar kommt (weniger Locking-Probleme bereiten 
würde etc.)

> Die Volltextsuche ist ein anderes Thema; damit habe ich wenig Erfahrung,
> und ich weiß nicht, was es neben DBMSen da für Alternativen gibt. Evtl.
> ist dafür ein anderes System besser geeignet.

Eigentlich sollten wir eine eigene Volltext-Suche schreiben (bzw. ein möglw. 
existierendes OpenSource-System verwenden). Der Trick wäre, eine Indizierung 
neben der eigentlichen Datenbank aufzubauen, etwa per Joblauf zu 
aktualisieren (es müssten jeweils nur geänderte Artikel betrachtet werden, 
und an die ist schnell darnzukommen). Also: Nicht die Texte durchuschen (im 
Moment haben wir glaube ich irgendwelche %like%-Suchen über mySQL?), sonden 
vorbereitete Index-Tabellen. Wenn's da noch nichts Opensourciges-gibt: Die 
Algorithmen für sowas sind zumindest bekannt und gut publiziert.

Uli