是否推荐使用PRAGMA synchronous=OFF来提高性能?
Is it a recommended practice to improve performance using PRAGMA synchronous=OFF
从这个问题:SQLite更新一条记录非常(相对)慢
我看到他使用PRAGMA synchronous=OFF获得了很大的速度增益。
我面临非常慢的sqlite更新时间(250ms),我需要从不同的线程做许多更新。
我从不同的线程到数据库有许多打开的连接。如果只有一个中央数据库类,用所有线程调用的锁来包装DB,并使用PRAGMA synchronous=OFF来提高速度,这样会更好吗?
PRAGMA synchronous
只影响磁盘同步;ie。暂停以确保给操作系统的数据被写入磁盘。动一下锁也没用。
现在看起来你只是在猜测;在优化之前,您需要做一些分析。你的慢点在哪里?哪些查询比较慢(使用EXPLAIN QUERY PLAN
)?你在ANALYZE
吗?
还要注意,SQLite不是很并发友好;一次只能有一个连接写入数据库。如果需要高并发性,请考虑使用不同的数据库。
如果您有多个线程,我不建议您关闭同步。我怀疑仅仅通过将锁移到类的外部是否会提高速度
我建议你考虑一下数据库的规范化,这样你就不用每次都读取大量的数据了
相关文章:
- 从 16UC3 到 8UC3 的高性能 OpenCV 矩阵转换
- 如何从高性能的输入迭代器返回变体?
- 编写高性能C++二传手
- 提升图形库:以高性能的方式检查vertex_descriptor的有效性
- CGAL:加载.off文件后,如何访问顶点颜色
- 高性能程序,什么是更好的矢量数组或矢量的矢量
- 如何在不使用函数或类的情况下重复代码段,以便在C++中实现高性能循环
- 标准::矢量的高性能替代品
- 在Qt中以高性能方式将(富)文本附加到QTextEdit或QTextBrowser中
- Flatbuffers: 断言 'off && off <= GetSize()' 失败
- 在字典中查找单词模式,高性能
- 关于学习C++编码以实现高效/高性能数学例程,有哪些(推荐的)资源/书籍
- 编译C 源的问题将.OFF文件转换为XML Android OpenGL ES可读取的问题
- C++ 使用Google Mock进行高性能单元测试
- 使用 winAPI 设置窗口的高性能电源计划C++
- C - 派生的class Off std :: String类以添加额外的功能
- seekg 和 seekp :seek(streampos pos) 和 seek(streamoff off, ios
- C++组合高性能函数
- 实现类似于Qt的高性能互斥锁
- 用于高性能加法和乘法的常量形式