gpt4 book ai didi

linux - 如何将 SQLite3 数据库更改刷新到磁盘?

转载 作者:行者123 更新时间:2023-12-03 09:53:03 24 4
gpt4 key购买 nike

我的应用程序在可移植 Debian(5 和 8)计算机上运行。此计算机可能会在不可预测的时间断电。该应用程序经常更新特定的 SQLite3 数据库,并使用 sync() 命令立即刷新到磁盘。这样做是为了避免数据库损坏,这种情况会在更改完全写入磁盘之前电源消失时发生。

这一直运行良好,但现在的问题是 sync() 命令将所有打开文件的所有缓冲更改刷新到磁盘。这会导致系统其他部分变慢。一种可能的解决方案是只刷新关键文件更改,例如这个特定的数据库文件。但问题是;我怎样才能做到这一点?我无权访问文件描述符,也找不到任何能为我执行此操作的 SQLite3 函数。有什么想法吗?

最佳答案

您可以使用特定于文件的同步。 fsync() 将对此很有用。

参见 https://www.sqlite.org/c3ref/db_cacheflush.html

关于linux - 如何将 SQLite3 数据库更改刷新到磁盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47096127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com