- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
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. 若需要使用改变大量多行的UPDATE或DELETE命令,并且不介意SQLite使用更多的内存的话,可以增大缓存以提高性能。
3.如何设置
PRAGMA cache_size = Number-ofs;
修改SQLite一次存储在内存中的数据库文件页数。
4.注意事项:
当使用cache_size pragma改变缓存大小时,改变仅对当前对话有效,当数据库关闭重新打开时缓存大小恢复到缺省大小。要想永久改变缓存大小,使用default_cache_size pragma.
5.建议:
修改为8000,也就是执行命令“PRAGMA cache_size =8000;”即可;
三.LIKE运算符
PRAGMA case_sensitive_like;
PRAGMA case_sensitive_like = 0 | 1;
标记含义:
LIKE运算符的缺省行为是忽略latin1字符的大小写。因此在缺省情况下a LIKE A的值为真。可以通过打开 case_sensitive_like pragma来改变这一缺省行为。当启用case_sensitive_like,a LIKE A为假而a LIKE a依然为真。
1.注意事项:
SQLite3.6.22版本不支持。
2.建议:
打开。也就是执行命令“PRAGMA case_sensitive_like = 1;”命令。不然搜索中文字串会出错。
四.LIKE运算符
PRAGMA count_changes;
PRAGMA count_changes = 0 | 1;
查询或更改count-changes标记。
正常情况下INSERT, UPDATE和DELETE语句不返回数据。
当开启count-changes,以上语句返回一行含一个整数值的数据——该语句插入,修改或删除的行数。
1.注意事项:
返回的行数不包括由触发器产生的插入,修改或删除等改变的行数。
2.建议:
打开,便于调试。也就是执行“PRAGMA count_changes = 1;”该命令。
五.页面大小
PRAGMA page_size;
PRAGMA page_size = bytes;
查询或设置size值。
1.注意事项:
只有在未创建数据库时才能设置size。页面大小必须是2的整数倍且大于等于512小于等于8192。
上限可以通过在编译时修改宏定义SQLITE_MAX_PAGE_SIZE的值来改变。上限的上限是32768。
六.磁盘同步
1.如何查询:
PRAGMA synchronous;
指令含义:查询synchronous标记的设定,返回整数值;
2.如何设置:
PRAGMA synchronous = FULL; (2)
PRAGMA synchronous = NORMAL; (1)
PRAGMA synchronous = OFF; (0)
3.参数含义:
当synchronous设置为FULL (2), SQLite数据库引擎在紧急时刻会暂停以确定数据已经写入磁盘。这使系统崩溃或电源出问题时能确保数据库在重起后不会损坏。FULL synchronous很安全但很慢。
当synchronous设置为NORMAL, SQLite数据库引擎在大部分
您可能关注的文档
最近下载
- 矽力杰产品规格书SY5055.pdf VIP
- 道闸项目报价清单.xlsx VIP
- 贵州省预防接种技能竞赛理论考试题库资料(含答案).pdf VIP
- AASHTO-LRFD-SI-2007(4)桥梁手册第四章中文版.doc VIP
- AASHTO LRFD Bridge Design Specifications(AASHTO LRFD桥梁设计规范).docx VIP
- 迅达常用备件识别号查询手册_Ae5.pdf VIP
- 数学学科业务工作报告.pdf VIP
- 2023年春学期人教版初中物理九年级下册教学进度表.docx VIP
- 基于AASHTO沥青混凝土路面设计方法的应用与研究.doc VIP
- 小班科学方方和圆圆教案反思.docx VIP
文档评论(0)