2010年SQLite3学习笔记之四(性能优化篇)

本文是关于SQLite3性能调优的学习笔记,主要包括空间释放、缓存大小、LIKE运算符、磁盘同步和内存模式的调整。建议关闭auto_vacuum以避免低效的磁盘收缩,增大cache_size提升性能,开启case_sensitive_like以正确处理中文搜索,选择合适的synchronous级别平衡速度与安全性,以及使用内存模式的temp_store提升临时对象处理速度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQLite3性能优化

2010年SQLite3学习笔记之四(性能优化篇)

引言:

小老虎多多SQLite3性能优化的学习笔记。

SQLite3性能调整主要通过pragma指令来实现。

比如调整:空间释放、磁盘同步、Cache大小等。

.空间释放
1.如何查询:

PRAGMA auto_vacuum;

含义:查询数据库的auto-vacuum标记。

2.标记含义:

auto-vacuum标记的含义:
正常情况下,当提交一个从数据库中删除数据的事务时,数据库文件不改变大小。未使用的文件页被标记并在以后的添加操作中再次使用。这种情况下使用VACUUM命令释放删除得到的空间。但是Vacuum的效率非常低!
3.如何设置:

PRAGMA auto_vacuum = 0 | 1;

当开启auto-vacuum,也就是执行pragma auto_vacuum=1;

当提交一个从数据库中删除数据的事务时,数据库文件自动收缩, (VACUUM命令在auto-vacuum开启的数据库中不起作用)。数据库会在内部存储一些信息以便支持这一功能,这使得 数据库文件比不开启该选项时稍微大一些。

4.注意事项:
只有在数据库中未建任何表时才能改变auto-vacuum标记。试图在已有表的情况下修改不会导致报错。

5.建议:

不要打开。也就是“PRAGMA auto_vacuum = 0;”执行命令。

.缓存大小
1.如何查询:

PRAGMA cache_size;

查询SQLite一次存储在内存中的数据库文件页数。

2.标记含义:

每页使用约1.5K内存,缺省的缓存大小是2000. 若需要使用改变大量多行的UPDATEDELETE

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

littletigerat

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值