sqlite事务 及 PRAGMA synchronous = OFF;

bash 复制代码
begin;
PRAGMA synchronous = OFF;

commit;

PRAGMA synchronous = OFF; 是一个用于 SQLite 数据库的命令,它设置了数据库的同步模式。SQLite 是一个流行的嵌入式数据库管理系统,它通过不同的 PRAGMA 命令提供了多种设置和优化选项。

在 SQLite 中,synchronous PRAGMA 用于控制数据库引擎在写操作期间如何使用磁盘 I/O。这个设置会影响数据的完整性和性能。有三个主要的 synchronous 模式:OFFNORMALFULL

  • OFF : 当设置为 OFF 时,SQLite 引擎不会等待数据实际写入磁盘;它只是将数据发送到操作系统,并立即继续执行。这种模式提供了最快的操作速度,因为减少了磁盘 I/O 操作。然而,这也意味着在系统崩溃或电源故障的情况下,最近的写操作可能会丢失,因为数据可能还没被实际写入磁盘。

  • NORMAL : 在 NORMAL 模式下,SQLite 会在关键时刻(如事务提交)等待数据写入磁盘,但不像 FULL 模式那样频繁。这提供了数据完整性和性能之间的平衡。

  • FULL : FULL 模式确保数据在继续之前写入磁盘,从而提供最高级别的数据完整性。在这种模式下,每次写操作都会同步到磁盘,但性能会因为增加的 I/O 操作而降低。

总的来说,PRAGMA synchronous = OFF; 是一个性能优化设置,它牺牲了一些数据完整性以换取更快的写操作速度。在不太关心数据丢失风险的场景中,比如临时数据库或缓存,这个设置可能是有益的。然而,在需要确保数据安全和完整性的应用中,使用 OFF 模式需要谨慎。

相关推荐
稚辉君.MCA_P8_Java30 分钟前
WebSocket 是什么原理?为什么可以实现持久连接?
网络·数据库·websocket·网络协议
小光学长1 小时前
基于Vue的图书馆座位预约系统6emrqhc8(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
前端·数据库·vue.js
code小毛孩1 小时前
如何简单的并且又能大幅度降低任务队列的锁粒度、提高吞吐量?
java·jvm·数据库
风随心飞飞2 小时前
linux 环境下mysql 数据库自动备份和清库 通过crontab 创建定时任务实现mysql数据库备份
linux·数据库·mysql
奥尔特星云大使2 小时前
读写分离中间件简介
数据库·mysql·中间件·读写分离
友莘居士2 小时前
高效处理 Excel 海量数据入库:编程脚本、CSV 中间件、图形工具优化全攻略
数据库·中间件·excel·csv·海量数据·入库
Han.miracle3 小时前
数据库圣经第二章——简单的my.ini基础配置介绍
数据库
八怪4 小时前
KILL MTS的一个worker线程会怎么样
数据库
-Xie-5 小时前
Mysql杂志(三十一)——Join连接算法与子查询、排序优化
数据库·mysql
程序新视界5 小时前
在连表查询场景下,MySQL隐式转换存在的坑
数据库·mysql·dba