Question: What are the differences between [SQLite](http://www.sqlite.org/) and [DISQLite](http://www.yunqa.de/delphi/doku.php/products/sqlite3/index) and why would I want to pick one over the other?

My context is that I am dealing with a large database (could be up to 10 GB), the critical part of which is in one very simple table with a single indexed field and one text field up to a few KB in size. My development tool is Delphi 2009 and the database will be embedded in my .exe.

My main criteria is speed. This would be for a software application running on a typical Windows computer, say with Windows 7 and 4 GB of RAM.

If you want to suggest another database tool, please tell me why it would be better than these two for my application, especially on the speed frontier.

Answer: 
I can suggest you writing your own implementation. If you don't need complex SQL queries, the simplest (and probably the fastest) implementation is file-based storage.
Take a look at our [SynBigTable unit](http://blog.synopse.info/category/Open-Source-Projects/Synopse-BigTable). It's will be [much faster than SQLite](http://synopse.info/forum/viewtopic.php?pid=1011#p1011), and seems to fit exactly your purpose.

And if you need a native SQLite implementation, take a look at our [SQLite3 framework](http://blog.synopse.info/category/Open-Source-Projects/SQLite3-Framework): it's free and OpenSource, without any external dll. And has some more features than the closed DiSQLite (like Delphi native classes for implementing SQL functions or Virtual tables).

For the performance POV, the bottleneck won't be the wrapper you're using, but the disk access, and how you set up your database. Don't forget to use [indexes](http://www.sqlite.org/lang_createindex.html) to retrieve your data as fast as possible. Then even 10 GB of data won't be a problem for SQLite, whatever wrapper you are using.