Sqlite instead of CSV


Possibly ludicrous feature request.

Sometimes I build projects with too many files and run up against Scrivener’s limitations. The program runs slower, or takes 20 minutes to load up, or crashes, or refuses to open. Admittedly, I often try to use Scrivener more like a personal wiki.

I’ve been searching for alternative programs and have only found Cherrytree and Treepad to be suitable for my needs.

However the GUI and the tree (binder) on Scrivener are much easier to use and have a better range of features (like split and merge). Scrivener is just a better program.

Cherrytree has the option of storing files in sqlite or csv. I’ve not tested the limits yet (the import tool tends to hang and crash the app) but sqlite should be able to handle pretty massive files, right? Would Lee or some other Scrivener developer ever consider offering an sqlite option or would it require such a massive overhaul of the software as to be totally unfeasible?

Thanks (from Melbourne),


If anyone else is interested, Treepad does seem to be able to cope with massive projects without difficulty but it doesn't seem to be developed much and it is hideous.

I don’t think that changing the underlying storage format would make much of a different to performance here. We’re already using a format that is capable of handling dozens if not hundreds of gigabytes of data without breaking a sweat: folders and files. Slowdowns are going to result more from overhead issues in search indexing, building of list views out of the raw data and such. That kind of active memory space stuff needs to be optimised no matter how the data is arrayed on the disk.

Meanwhile with a database format you’d lose one of the principle advantages of the Scrivener format: anyone can recover from a total failure since the whole format is built using standard file formats, most of which can be loaded in popular word processors and text editors.

CSV wouldn’t bring anything to the table here. That’s basically a simplified transit format for spreadsheet type data storage—columns and rows. You wouldn’t want to use it for storing binary data of any magnitude.