Pros of a relational database like MySQL or Postgresql:
data is in tables and normalized (mostly :-)
a variety of new pages are easier to implement (like Top Ten Most Edited)
as the Wiki grows, performance will be better
DBM files have a built-in memory leak, so they grow disproportional to their content
and they are a more flexible data store, all around
The disadvantages:
a DBM based Wiki is simpler
it requires no installation or administration. Relational DB's are complex
it doesn't require SQL
everything is stored as a serialized data structure, so in some respects it's easier to extend a DBM based Wiki than a relational one (just add more keys to the hash)
Overall, it's a fair tradeoff. I think it's important to give users choice, and one of the first requests after 1.0 came out was support for a RDBMS. Since the data store is kind of abstracted away, it wasn't hard at all to make this change.
My goal is support for DBM, mSQL, MySQL and Postgresql (only mSQL left at this point, 1.1.6 will support the other three).
sw
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
what are the benefit to have a database rather than the simple files , in the wiki case '?
Actually there are a few.
Pros of a relational database like MySQL or Postgresql:
data is in tables and normalized (mostly :-)
a variety of new pages are easier to implement (like Top Ten Most Edited)
as the Wiki grows, performance will be better
DBM files have a built-in memory leak, so they grow disproportional to their content
and they are a more flexible data store, all around
The disadvantages:
a DBM based Wiki is simpler
it requires no installation or administration. Relational DB's are complex
it doesn't require SQL
everything is stored as a serialized data structure, so in some respects it's easier to extend a DBM based Wiki than a relational one (just add more keys to the hash)
Overall, it's a fair tradeoff. I think it's important to give users choice, and one of the first requests after 1.0 came out was support for a RDBMS. Since the data store is kind of abstracted away, it wasn't hard at all to make this change.
My goal is support for DBM, mSQL, MySQL and Postgresql (only mSQL left at this point, 1.1.6 will support the other three).
sw