c++ - 是否推荐使用 PRAGMA synchronous=OFF 来提高性能

标签 c++ performance qt sqlite database-optimization

从这个问题: 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/

相关文章:

c++ - 为什么 MATLAB/Octave 在特征值问题中用 C++ 擦地板?

c++ - 无法写入文件

javascript - 如果重复多次,JavaScript 是否缓存/优化代码?

c++ - 在 -(破折号)字符处拆分 QString,列表项访问

qt - 使用 QPainter 时对象是透明的

c++ - 使用 boost 库的多线程

c++ - 在 SDL 中,SDL_Quit() 会释放每个表面吗?

Java高效文件写入: String concatentation versus extra call to write()

c# - 我如何才能发现最终用户的用户系统性能设置?

android - 已安装 Google Play 服务,但文件夹 google_play_services_lib 不存在