概述
前言
在demo中调用了sqlite3_db_cacheflush,使sqlite3数据库未关闭时,将数据flush到磁盘上,这样,我就能在线拷贝走数据库文件。
发现在开发环境下,这个api是好用的。
在实验环境下,执行这个api引发崩溃。
对照sqlite环境:
- 开发环境装了sqlite3和libsqlite3-dev
- 实验环境因为不需要开发头,只装了sqlite3
最后在实验环境下去掉了sqlite3_db_cacheflush调用,demo好使了。
sqlite3_db_cacheflush这种操作,会强制写磁盘,降低了效率。其实也不该调用的。只需要用另外一个数据库连接,打开这个数据库,当前进度也是知道的,由sqlite3数据库本身来保证数据是同步的。
sqlite3_exec是带缓冲操作的,如果是insert语句,超过了缓冲区大小,才会向磁盘写。就像fwrite那样。
最后
以上就是伶俐裙子为你收集整理的sqlite3_db_cacheflush的全部内容,希望文章能够帮你解决sqlite3_db_cacheflush所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复