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

相关推荐
小白勇闯网安圈11 小时前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
努力的小雨11 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
科技绘图12 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
ltl12 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性
数据库
ltl12 小时前
WAL 与崩溃恢复:ARIES 协议怎么跑通
数据库
ltl12 小时前
TEE 数据库:EnclaveDB、Oblivious 原语与机密 SQL
数据库
麻瓜code14 小时前
【Mysql】重新学一遍 SQL 执行顺序
数据库·sql
这个DBA有点耶14 小时前
数据库一体机架构演进:从硬件堆叠到软硬深度耦合
服务器·网络·数据库·硬件架构·运维开发·database·数据库架构
安_15 小时前
RAG的向量数据库:为LLM提供语义搜索能力
数据库
喜欢的名字被抢了16 小时前
程序出问题怎么查,以及如何让它不掉线
java·运维·数据库