> If I config for multi-threaded, setup one connection per thread as read-only with no mutex, and the default private cache, I see something like this as a result. That should work for two or three threads at least. Don't use shared-cache mode. Shared-cache mode allows less concurrency than private-cache mode. Another thing to do is to turn off memory statistics, either by building with -DSQLITE_DEFAULT_MEMSTATUS=0 or using "sqlite3_config(SQLITE_CONFIG_MEMSTATUS, 0);" at run time.