我的应用程序在便携式 Debian(5 和 8)计算机上运行。这台计算机可能会在不可预测的时间断电。该应用程序经常更新特定的 SQLite3 数据库,并立即刷新到磁盘,使用sync()
命令。这样做是为了避免数据库损坏,这种情况会在更改完全写入磁盘之前断电时发生。
这一直工作得很好,但现在的问题是sync()
命令将所有打开文件的所有缓冲更改刷新到磁盘。这会导致系统其他部分的速度变慢。一种可能的解决方案是仅刷新关键文件更改,例如此特定数据库文件。但问题是;我怎样才能做到这一点?我无法访问文件描述符,并且找不到任何可以为我执行此操作的 SQLite3 函数。有任何想法吗?
您可以使用文件特定同步。 fsync() 对此很有用。
see https://www.sqlite.org/c3ref/db_cacheflush.html https://www.sqlite.org/c3ref/db_cacheflush.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)