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 模式需要谨慎。

相关推荐
云和恩墨10 小时前
OceanBase企业版会话级SQL跟踪实操:DBMS_MONITOR(类Oracle 10046事件)
数据库·sql·oracle·oceanbase
为什么不问问神奇的海螺呢丶10 小时前
oracle 数据库巡检 sql
数据库·sql·oracle
麦麦鸡腿堡10 小时前
MySQL数据库操作指令
数据库·mysql
陈天伟教授16 小时前
人工智能训练师认证教程(2)Python os入门教程
前端·数据库·python
Elastic 中国社区官方博客17 小时前
Elasticsearch:在分析过程中对数字进行标准化
大数据·数据库·elasticsearch·搜索引擎·全文检索
聪明努力的积极向上17 小时前
【MYSQL】字符串拼接和参数化sql语句区别
数据库·sql·mysql
代码or搬砖17 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
神仙别闹17 小时前
基于QT(C++)实现学本科教务系统(URP系统)
数据库·c++·qt
2301_7683502317 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql
上海蓝色星球17 小时前
迈向智慧电网新纪元:上海蓝色星球数字孪生变电主子站系统
运维·数据库