There are lots of database engines in the world. There are a growing number of open-source embedded database engines. How can you know which engine is right for your application? This page provides links to comparisons between SQLite and other database engines. The information that this page links to is intended to provide designers with information to help them choose the best database for their particular situation. If you find additional comparision information, please add a link to this page. *: SqliteVersusDerby - A comparison of SQLite and the CloudScape/Derby database open-sourced by IBM. *: SqliteVersusDbstar - A comparison of SQLite and the db.* database engine open-sourced by ITTIA. *: SqliteVersusRDMMobile - RDM-Mobile 3.0 from Birdstep Technology (http://www.birdstep.com) is basically the same product as db.*. It was extended with additional access layers (Java-JNI, XML). *: SqliteVersusRDMEmbedded _:: RDM-Embedded (also from Birdstep Technology) adds a SQL-Layer to RDM-Mobile. It features an ODBC-like C-API. The SQL-Dialect is very limited compared to SQLite (no triggers, no views, no outer joins ...). No DDL-Statements can be executed via the SQL-Layer, the table structure must be predefined using a preprocessor utility. As the records are fixed-size the database can grow very large when using strings with variable length. *: What about EmbeddedMySQL?: ({link: http://dev.mysql.com/doc/mysql/en/libmysqld_overview.html description}) I don't know enough to do a comparison myself, but it seems to have a lot of overlap. _::A big turn off for EmbeddedMySQL is their license - here's an extract: _:::"The MySQL source code is covered by the GNU GPL license (see section G GNU General Public License). One result of this is that any program which includes, by linking with libmysqld, the MySQL source code must be released as free software (under a license compatible with the GPL)." (added by {link:http://www.smartpethealth.com DV}) _::Another turn off is its size: when i link SQLite into my app the difference is barely noticed not so with EmbeddedMySQL. *: What about SimpleSQL?: ({link: http://www.simplesql.org/ for description}) _:: SimpleSQL is only sparsely documented. The code is uncommented except for a boiler-plate header comment on each file. There are some test cases but the testing seems to be much less rigorous than SQLite. SimpleSQL uses the LGPL license. *: SQLite versus {link: http://www.sleepycat.com/ Berkeley DB}: _:: Berkeley DB (BDB) is just the data storage layer - it does not support SQL or schemas. In spite of this, BDB is twice the size of SQLite. A comparison between BDB and SQLite is similar to a comparison between assembly language and a dynamic language like Python or Tcl. BDB is probably much faster if you code it carefully. But it is much more difficult to use and considerably less flexible. _:: On the other hand BDB has very fine grained locking (although it's not very well documented), while SQLite currently has only database-level locking. -- fine grain locking is important for enterprise database engines, but much less so for embedded databases. In SQLite, a writer gets a lock, does an update, and releases the lock all in a few milliseconds. Other readers have to wait a few milliseconds to access the database, but is that really ever a serious problem? *: SqliteVersusFirebird - SQLite versus Embedded Firebird SQL server : Someone experienced with the embedded version of FireBird (ie. the equivalent of SQLite vs. the client/server version) told me that the database file must reside on the host where the EXE is running, ie. no way to point SQLite to a remote shared host, no matter how it's refered to (\\server\data\myfile.db) or (x:\data\myfile.db). *: SqliteVersusVistadb - SQLite versus the VistaDB product