How are SQLite and DISQLite compared for a large simple database?

What is the difference between SQLite and DISQLite and why do I want to select one by one?

In my context, I am dealing with a large database (maybe up to 10 GB), the critical part of which is in one very simple table with one indexed field and one text field up to several KB, My development tool is Delphi 2009, and the database will be built into my .exe.

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

If you would like to propose another database tool, please tell me why it would be better than the two for my application, especially at the speed limit.

+4
source share
5 answers

AFAIR, DISQLite uses Sqlite obj files and compiles them using Delphi and creates more features than the original one and uses the same DB SQL format, so you can read DISQLite database file in other languages, support for Sqlite drivers.

Also another function with DISQLite you do not need to distribute Sqlite DLL.

Support for DISQLite database sizes up to 2 TB, so it can work with your needs without any problems.

Other options that I would consider are the built-in version of FireBird, and if you want to scale it up, you can easily switch to the full FireBird server.

But I think that both Sqlite and DISQLite will work better than Firebird.

I use Audcom Sqlite components to access Sqlite databases, and you can compile it using the Sqlite objs file so that you do not have sqlite dll deployments.

+4
source

I can suggest you write your own implementation. If you don't need complex SQL queries, the simplest (and probably the fastest) implementation is file-based storage.

+2
source

DISQLLite has two versions with a free version limited to personal and non-commercial use. Thus, this can be one of the decisive factors, since SQLite is a free open source implementation without free / paid versions.

Both databases will be able to process data within GB. SQLite is available in a precompiled binary library, that is, in a DLL that can be distributed throughout your application. However, with the source code, you can also compile it in your application and use it without the need for a DLL.

The advantage of using a DLL module (from time to time) is that when some of the errors are resolved, you just need to replace the DLL on the client machine, rather than recompiling the entire application.

I believe SQLite would be the best option for your requirement. Database speed is not completely based on the type of database. Equipment, such as hard disk access speed, available computing power, RAM, etc., also play an important role in speeding up the database.

+1
source

Please note that the personal version of DISQLLite has some limitations, and I do not think that the price for the professional version (euro 149.99 without a source) is worth it when anyone can simply implement the SQLite shell for free.

I used DISQLite personal for a free product and had to implement a database change in the release of the new version. The personal version does not support "ALTER", so I had to purchase the full version. So I dropped DISQLite and just went with a good SQLite shell. Just go to DISQLite if you are willing to pay for the full version.

SQLite4Delphi might be a better option, or at least point to a more economical solution.

+1
source

Take a look at the SynBigTable block . It will be much faster than SQLite , and it seems to fit your purpose exactly.

And if you need an embedded SQLite implementation, check out our SQLite3 framework : it's free and OpenSource, without any external dll. And it has a few more functions than closed DiSQLite (for example, native Delphi classes for implementing SQL functions or virtual tables).

For POV performance, the bottleneck is not the shell that you use, but disk access and how you configure your database. Remember to use indexes to get data as quickly as possible. Then even 10 GB of data will not be a problem for SQLite, regardless of the shell used.

+1
source

All Articles