Darren Duncan wrote:
At 11:13 PM -0800 1/22/05, Jeff wrote:
I'm making something that requires XML. (ooh, secretness) It would also be nice to use SQLite with it, but I am confused about how much things I need to put into the database and how much that needs to stay on the file system. You probably didn't understand that. My describing skills suck. Here is the question: Should I store XML files in a database, or should I just put it on the file system. Which would be faster?
I would say that it depends on their quantity or use. If you are having thousands of little XML files, then store all of them in a SQLite database, each one in a SQLite record, where the XML is all in a large text field, and other fields in the row contain a few details you would look it up by. If you have just a few large XML files, then store them in the file system. A database is also useful if you want to look up your XML document by multiple criteria rather than just by one. -- Darren Duncan
I haven't experimented specifically with XML data, but I did do some experiments recently that compared SQLite 3.0.7 vs. the file system as a binary data cache on a relatively new and high-end Mac OS X system. I found that SQLite outperformed the file system if the average size of the data blocks was 20K bytes or less. As the size of the data blocks grew beyond 20K, the file system was more efficient by an increasingly large margin.
-Eric

