Ivo-
I think the bottleneck is using a database mangement
system (here mysql). So
my question is: What is the advantage of using it? As I understand the
toppic dbms is usefull for very structured redundant data.
This is an eternal debate. You may want to look at MoinMoin, which stores
all its pages in plaintext and still manages to be very powerful:
http://moin.sourceforge.net/
Also see my review of several DB and non-DB based wiki engines in
c't 25/03.
Using a database allows us to run a set of highly complex queries to
examine the relationships between articles and the metadata about
articles. In fact we can even examine the relationship between articles
and users (watchlist), or between the metadata of different articles
(redirect status in "What links here").
All that would only be possible using ugly hacks without a database -- you
would effectively have to build your own mini-DB to store this metadata,
and most text-based wikis do this. They get extremely slow when it comes
to very basic stuff such as listing backlinks or doing a fulltext search.
Not on a small wiki, but on one of the size of Wikipedia. I have imported
large datasets into TWiki etc., and many operations became practically
unusable.
The MediaWiki FT search has locking issues. It's very fast for a normal
wiki, but for a huge one like Wikipedia it tends to get in a deadlock
state. That's why we have to disable it on Wikipedia. Some other queries
could also be made faster. Many of our queries have been optimized now and
every single one should eventually return results with a response time of
milliseconds.
It is a fallacy that a database makes things more complicated. It makes
them much easier because you don't have to worry where to store something
before implementing it. How do you want to store your user prefs, the
redirect info, the recent changes table, the page history, always keeping
quick access in mind? Usemod, Twiki etc. all use ugly hacks for that kind
of stuff.
In short, a DB is faster, cleaner, and more convenient. We benefit from
the thousands of man hours that the MySQL developers have invested in
building a scalable, fast, powerful multi-user database instead of having
to reinvent the wheel whenever we want to do something that goes beyond
"show me that file".
Regards,
Erik