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

2024-01-08

我的应用程序在便携式 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(使用前将#替换为@)

如何将 SQLite3 数据库更改刷新到磁盘? 的相关文章

  • 裸机交叉编译器输入

    裸机交叉编译器的输入限制是什么 比如它不编译带有指针或 malloc 的程序 或者任何需要比底层硬件更多的东西 以及如何才能找到这些限制 我还想问 我为目标 mips 构建了一个交叉编译器 我需要使用这个交叉编译器创建一个 mips 可执行
  • 如何列出 nginx 中的所有虚拟主机

    有没有一个命令可以列出 CentOS 上 nginx 下运行的所有虚拟主机或服务器 我想将结果通过管道传输到文本文件以用于报告目的 我正在寻找与我用于 Apache 的命令类似的命令 apachectl S 2 gt 1 grep 端口 8
  • 使用 RSQLite 在 R 中加载 SQLite 表

    我有这个函数用来加载 SQLite 表 sqLiteConnect lt function database table library DBI library RSQLite con lt dbConnect SQLite dbname
  • 如何在perl中使用O_ASYNC和fcntl?

    我想使用 O ASYNC 选项 当管道可以读取时 SIGIO 的处理程序将运行 但以下代码不起作用 任何人都可以帮助我吗 bin env perl use Fcntl SIG IO sub print catch SIGIO n my fl
  • 如何将 elf 解释器(ld-linux.so.2/ld-2.17.so)构建为静态库?

    如果我的问题不准确 我深表歉意 因为我没有太多 Linux 相关经验 我目前正在构建一个 Linux 从头开始 主要遵循 linuxfromscratch org 版本的指南 7 3 我遇到了以下问题 当我构建可执行文件时 获取一个称为 E
  • 如何在 SQLite 中检查数据库是否存在 C#

    我目前正在用 C 编写一个应用程序 并使用 sqlite 作为嵌入式数据库 我的应用程序在启动时创建一个新数据库 但如何让它检查数据库是否存在 如果它确实存在 我如何让它使用它 如果不存在如何创建一个新数据库 这是我到目前为止所拥有的 pr
  • Apache LOG:子进程 pid xxxx 退出信号分段错误 (11)

    Apache PHP Mysql Linux 注意 子进程 pid 23145 退出信号分段错误 11 tmp 中可能存在 coredump 但 tmp下没有找到任何东西 我怎样才能找到错误 PHP 代码中函数的无限循环导致了此错误
  • 查找并删除超过 x 天的文件或文件夹

    我想删除超过 7 天的文件和文件夹 所以我尝试了 17 07 14 email protected cdn cgi l email protection find tmp mindepth 1 maxdepth 1 ctime 7 exec
  • Wordnet sqlite 同义词和示例

    我正在尝试获取给定 wordid 的同义词和示例列表 经过大量的试验和错误 我可以获得所有同义词集的样本 但不是实际的同义词 这是我的查询 它给出了以下结果 select senses wordid senses synsetid sens
  • 从哪里获取 iostream.h

    我正在尝试在 Linux 中做一些事情 但它抱怨找不到 iostream h 我需要安装什么才能获取此文件 这个标准头的正确名称是iostream没有扩展名 如果您的编译器仍然找不到它 请尝试以下操作 find usr include na
  • 由于 abi::cxx11 符号导致的链接问题?

    我们最近收到一份报告 因为GCC 5 1 libstdc 和双 ABI http gcc gnu org onlinedocs libstdc manual using dual abi html 它似乎Clang 不知道 GCC 内联名称
  • 如何使用 VSCode 调试 Linux 核心转储?

    我故意从我使用 VSCode 编写的 C 应用程序生成核心转储 我不知道如何调试核心转储 有没有人愿意分享这方面的经验 更新 我相信我现在已经可以使用了 我为核心文件创建了第二个调试配置 我需要添加指向生成的转储文件的 coreDumpPa
  • 如何在 bash_profile 文件中添加导出语句?

    我正在尝试了解是否必须添加导出语句来在 bash profile 文件中设置变量 我该怎么做呢 例如 如果我必须添加 export AX name 那么我应该将其简单地写在文件末尾还是我还需要编写其他内容 简单写一下export AS na
  • SQLite 中的累积求和值

    我正在尝试在 SQLite 中执行值的累积和 我最初只需要对一列求和并获得代码 SELECT t MyColumn SELECT Sum r KeyColumn1 FROM MyTable as r WHERE r Date lt t Da
  • SugarORM 错误或缺少数据库

    我尝试让 Android 项目与 SugarORM 一起使用 但是 我遇到了以下错误 引起原因 android database sqlite SQLiteException 没有这样的表 DOCUMENT 代码1 编译时 INSERT O
  • $ bundle exec rake db:reset 命令提升无法删除 db/development.sqlite3

    我试着跑 bundle exec rake db reset并在控制台上发现以下内容 Couldn t drop db development sqlite3
  • Linux >2.6.33:可以使用 sendfile() 来实现更快的“猫”吗?

    必须将大量大文件连接成一个更大的单个文件 我们目前使用 cat file1 file2 output file but are wondering whether it could be done faster than with that
  • 如何使用 nohup 获取正在运行的程序列表

    我正在通过 SSH 连接访问运行 CentOS linux 发行版 的服务器 由于我无法始终保持登录状态 因此我使用 nohup command 来运行我的程序 我找不到如何获取我开始使用 nohup 的所有程序的列表 工作 只有在我注销之
  • 如何从我的android联系人列表中的人名获取电话号码

    我想从我的联系人列表中的人名中获取他的电话号码 我已经使用了下面的代码 但它不能正常工作 告诉我我哪里错了 try cursor company getContentResolver query ContactsContract Data
  • Python Tkinter 自动完成组合框与 LIKE 搜索?

    我正在尝试使用预定义的值填充 Tkinter 组合框以供选择 它正在填充 我可以输入并获得建议 然而 为了做到这一点 我必须明确知道前几个字符 如果我知道字符串中间或末尾的一些文本 它是没有用的 因为组合框只执行 LIKE 搜索而不是 LI

随机推荐

  • 多重转变

    昨天我解决了有关 jquery 的问题 它无法正确加载 今天 我又遇到了另一个问题 一个元素的两次转换 第一个过渡在页面加载后开始 它淡入 当我不使用第二个过渡时 这个过渡实际上可以工作 每当有人将鼠标悬停在ul 问题在于悬停过渡 覆盖 淡
  • 函数指针(指向其他内核)作为 CUDA 中的内核 arg

    通过 CUDA 中的动态并行性 您可以从某个版本开始在 GPU 端启动内核 我有一个包装函数 它接受一个指向我想要使用的内核的指针 它要么在较旧设备的 CPU 上执行此操作 要么在较新设备的 GPU 上执行此操作 对于后备路径来说没问题 但
  • 使用 sed,如何匹配字符类中的方括号?

    这是原始数据的一部分 00000000 54 6f 70 69 63 20 46 6f 72 75 6d 20 52 65 70 6c Topic Forum Repl 00000010 69 65 73 20 4c 61 73 74 20
  • 如何在 Jenkins 中设置“资源根 URL”

    我们正在设置一个新的 Jenkins 实例 并发现 资源根 URL 默认为空 我已经阅读了有关此内容的 Jenkins 文档和 少数 stackoverflow 响应 但我仍然不清楚如何填写此字段 在我们的示例中 我们使用具有专用外部 IP
  • CakePHP错误数据库未定义

    我在每个问题中都搜索了这个问题的答案 但没有找到 这是我输入 localhost cakephp 时出现的错误 Notice 8 Undefined index datasource CORE Cake Model ConnectionMa
  • Django 管理模板覆盖在生产环境中不起作用

    Like 这个问题 https stackoverflow com questions 11793890 custom django admin templates not working 我的管理员覆盖在我的生产环境中不起作用 但它们在我
  • 在 SPARK 2.2.0 中如何将外部表转换为托管表?

    以下命令已成功将外部表转换为托管表Spark 2 0 0 ALTER TABLE table name SET TBLPROPERTIES EXTERNAL FLASE 但是上面的命令失败了Spark 2 2 0出现以下错误 查询错误 无法
  • 将 std::function 转换为 std::function

    首先 我定义两个类 它们相互继承 class A class B public A 然后 我声明一个使用std function
  • 未定义方法 merge_wrapper_options

    我正在尝试使用简单表单的虚假输入 如此处记录的 https github com plataformatec simple form wiki Create a fake input that does NOT read attribute
  • Swift 中的弱链接

    我正在处理一个场景 其中有一个我弱链接的 Objective C 类 attribute weak import interface MyClass NSObject end 我也在我的 Swift 代码中使用这个类 let myObjec
  • 调用客户端时,信号器服务器端方法是否应该异步?

    我正在关注 SignalR 教程 http www asp net signalr overview hubs api hubs api guide server http www asp net signalr overview hubs
  • 如何在 Spring Boot 中覆盖依赖项的托管版本

    Spring Boot 允许我们使用以下命令更改 Java 版本
  • 随机排序

    关于如何从集合中获取随机文档的问题已被多次询问 并且有关于该主题的建议 我需要的是从集合中获取几个随机文档 更糟糕的是 这些文档必须符合某些标准 我的意思是经过过滤 例如 我有一个文章集合 其中每篇文章都有一个 主题 字段 用户选择他感兴趣
  • 如何从 Android Facebook SDK 4.6.0 获取电子邮件 ID?

    这是我在 Facebook 登录后获取用户信息的代码 我正在尝试从用户那里获取电子邮件ID 我得到了名称 ID 但没有得到电子邮件ID 我尝试使用登录按钮和登录管理器类都给出了相同的结果 现在如何从回复中获取电子邮件 ID loginBut
  • 一旦 div 达到一定高度,使用 jQuery 将 div 的高度更改为自动

    我有一个 div 可以让用户动态添加额外的表单输入 我希望能够在这个 div 达到一定高度后将其高度更改为自动 这是我的 jQuery 代码 尽管它目前似乎不起作用 document ready function if upload3 he
  • 帮助测试使用 php 的代理是否有效

    我有一个代理列表 需要在我正在编写的 php 脚本中使用它们 在使用代理之前如何测试它是否可以正常工作 那可能吗 目前 如果代理不起作用 脚本将在 30 秒后终止 有没有更快的方法来确定它是否有效 也许创建一个套接字连接 向它发送一些内容来
  • Android JetPack 的共享 ViewModel 生命周期

    文档https developer android com topic libraries architecture viewmodel sharing https developer android com topic libraries
  • 将 CSV 中的所有列导入为字符?

    简单的问题 PROC IMPORT OUT braw address DATAFILE path address data csv DBMS csv REPLACE GETNAMES YES RUN 该语句将创建数据集列作为字符or数字取决
  • 数据类型“application/json”与“json”[重复]

    这个问题在这里已经有答案了 可能的重复 ajax 数据类型 https stackoverflow com questions 2722750 ajax datatype 我正在使用 jQuery 1 8 2 出于某种原因 applicat
  • 如何将 SQLite3 数据库更改刷新到磁盘?

    我的应用程序在便携式 Debian 5 和 8 计算机上运行 这台计算机可能会在不可预测的时间断电 该应用程序经常更新特定的 SQLite3 数据库 并立即刷新到磁盘 使用sync 命令 这样做是为了避免数据库损坏 这种情况会在更改完全写入