George Ionescu wrote:
Helo Allan,
This would be used in place of an MS Access database on a local/network
disk. I believe that SQLite should be quicker for both
transactions and queries than Access. The one draw back that comes to mind
maybe portability (i.e. accessing data outside of the
application), although the data would be portable across machines (PC,
Mac, Unix, etc) should we ever need it to be in the future.
Is there any webpage, or does anyone have any information comparing the
benefits of the two. I can only find comparisons between
MySQL and PostgreSQL. This information would aid us greatly in deciding
whether to use SQLite or stick with Access.
Any help/advice will be gratefully received.
Trying to compare sqlite to MySQL or PostgreSQL is (a little) like comparing
apples and oranges: they have different targets. While sqlite was made for
embedding into an application, it is not a database server (like the other
two you mentioned). This doesn't necessarily mean it won't be faster in some
situations. It just means that it won't handle exceptionally well the
concurrent access to your database.
Putting the database on a network share and accessing it from there is
definitively something to be avoided. I've had two customers (for our
SQLiteDb product) which experienced 'database is locked' errors with only
two clients accessing a single db on a network. This happens because of the
faulty implementation of file locking on NFS. We do have a product (a
multithreaded TCP/IP server, which is currently in beta stage) for accessing
sqlite databases over TCP/IP. It won't boost performance to handle hundreds
of users but we have succesfully tested against 10 clients. And, if your
queries are written right, the server should be able to handle more
concurent users.
As far as performance, sqlite is definitively a winner here. If you're
interested in some benchmarks, check out
http://www.terrainformatica.com/sqlitedb/downloads.whtm. You don't have to
purchase SQLiteDb: just download the demo and you will find there a direct
comparison between JET (accessed via ADO) and SQLiteDb.
Accessing sqlite via ODBC is an option. However, the ADO dependecy you're
stuck with is something that should be avoided.
Regards,
George Ionescu
Adding to George's comments, we built a multi-threaded application
server which embeds Sqlite and uses HTTP and that works much better in
some cases than having a DBMS server like PostgreSQL connected to a
regular WWW server. The reason is that everything runs in one process
and the threads are carefully synchronized. It does not have IPC
overheads and effectively hooks Sqlite to its clients using the
efficient "sendfile/TransmitFile" interface, resulting in performance of
the highest level.
Be very wary if you want to use Sqlite as a shared file. It is not a
server so you have to take care of contentions in your application.
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------