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