从这个问题: SQLite updating ONE record is very (relatively) slow
我看到他使用 PRAGMA synchronous=OFF 获得了很大的速度增益。
我面临着非常慢的 sqlite 更新时间(250 毫秒),我需要从不同的线程进行许多更新。
我有许多从不同线程到数据库的打开连接。只有一个中央数据库类用所有线程调用的锁包装数据库并使用 PRAGMA synchronous=OFF 以获得这样的速度改进会更好吗?
最佳答案
PRAGMA synchronous
只影响磁盘同步; IE。暂停以确保将提供给操作系统的数据写入磁盘。移动锁对此无济于事。
现在看来您只是在猜测;您需要在优化之前进行一些分析。你的慢点在哪里?哪些查询很慢(使用 EXPLAIN QUERY PLAN
)?你在ANALYZE
吗?
另请注意,SQLite 对并发性不是很友好;一次只有一个连接可以写入数据库。如果您需要高并发性,请考虑使用不同的数据库。
关于c++ - 是否推荐使用 PRAGMA synchronous=OFF 来提高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31519398/