"I think you entered junk text, vincent"
Guitly as charged. Dang, ip logging too.. nasty 🙂
"there've been quite a lot of downloads so far, and I think the database is handling it quite well - no corrupt XML that I can see here."
Indeed DBX works quite well, and I'm sure it can handle a fair amount of data in total, it's just that textfiles (and therefore XML files too) are famous for not being able to handle high-concurrency situations, you get into all sorts of interesting locking issues because files basically have one locking method and that's an excusive lock on the entire file (and therefor implicitly the entire database).
Now I know DBX is designed for small sites, but even small sites can get two concurrent requests, which means DBX must be able to handle that properly.
"we chose XML because it allows us to store data very easily"
Don't you mean "we chose XML because we already had an XML routine so we didn't have to spend time writing a new one"? 🙂
If you write your own data storage routines you'd be able to store data just as easily as with the current XML routines. 🙂
"otherwise DBX would be twice its present size"
I doubt that very much, because not using XML means you nolonger have to write your data in the hiddeously complex XML format (which is ok for complex data, but databases have simple rows like "field1;field2;field3". The number of fields and the order of the fields are always the same, which means XML is just using your resources to add useless field information to the file. And that makes the datafiles grow and your application slow. (Poetic stuff eh ? 🙂 )
I think a custom routine may actually be smaller.
"but if you look at the many people who don't have mySQL installed but want SQL scripts to run, it is an advantage don't you think?"
Definately, it's nice to be able to use simple (very simple) SQL to access the textfile data. Saves us a fair bit of work writing custom routines for the ordering 🙂
It has the potential to be a good mysql alternative for those who can't get mysql and don't need any 'real' SQL functionality.
Do you have plans to implement more SQL functions, like JOINs?