Could you please provide more information on how SQLCipher impacts overall performance of an application?
I have a situation where application is very intensive on read/write to the database (almost every second, even less than a second).
Hello @milos.vuckovic - The performance differences with SQLCipher will vary significantly based on a large number of factors, including platform, database size, database design, and query complexity. Impact could be as little as 1-5% for a query that returns a single row by indexed lookup, or inserts a single record. It could be much higher (e.g. ~50%) for a query returning a large amount of data on a full table scan, massive updates, etc. It’s really quite difficult to generalize. If I had to make a guess, performance impact is probably somewhere between 15-25%, given an application that meets the following criteria:
- well designed
- makes efficient use of database connections (i.e. does not constantly open and close connections triggering key derivation)
- normalized schema
- well indexed
- is not dealing with very large BLOB or text objects
- uses transactions appropriately
There is really not substitute for testing with your application though.
Here is a short article on other factors that can affect performance that is worth review:
SQLCipher Performance Optimization - Zetetic
As a further update, it is worth mentioning that SQLCipher Commercial and Enterprise packages include tools that can help quantify performance changes:
Thank you for all the information.