我是靠谱客的博主 伶俐裙子,最近开发中收集的这篇文章主要介绍sqlite3_db_cacheflush,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

前言

在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所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(66)

评论列表共有 0 条评论

立即
投稿
返回
顶部