I am putting finishing touches on quite a large application that uses Sqlite for the single user edition. My experience has been that inserting data is quite slow in comparison to most other dbs. All other operations are faster than any other db. It appears that Sqlite is highly optimized for SELECT, UPDATE, and DELETE, but INSERT is a bit slow.
Although the insertion speed of Sqlite is plenty fast for a single user app or a medium sized web app. If my instincts and research is correct, most other databases simply cache the transactions in memory to give the appearance that they are inserting very quickly, but the truth is they are probably not quite as safe as Sqlite since it writes the data to disk immediately upon receipt. This appears to be the bottleneck. I would be interested in knowing more about the internals of Sqlite that make it perform without having to do a major study of the code. I have read the architecture books on most other major databases, but not on Sqlite. : - ) Thanks, Allan -----Original Message----- From: Jonas Forsman / Axier.SE [mailto:[EMAIL PROTECTED] Sent: Monday, October 27, 2003 3:27 AM To: [EMAIL PROTECTED] Subject: [sqlite] Performance benchmarking Hi, I have recently converted a "problem application" from MS-Access to SQLite in Visual Basic but the performance is really worse then with Access. I have not changed much in the application code except for a few things that should be in favour to sqlite, like implementing a second "in memory" database for temporary data and disc based write-to db. Has anyone tested and concluded that sqlite is faster for small databases (<5000 records) so I don't sit here in vain, trying to optimize for something that just can't be done? Inserts are done in a transaction (extremely good prestanda here), selects are indexed (could this be a problem in a table with 2-3 000 records?) by adding too much overhead compared to a non-indexed, sequential, search? regards /Jonas --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]