iOS开发中的SQLite知识总结
2013-01-05 16:27 v2m 阅读(2818) 评论(3) 编辑 收藏 举报一、查询优化
1.使用索引
当表中的数据太多时,建立索引可以明显提高查询速度
创建索引
sql> CREATE INDEX 索引名 ON 表(字段1[ASC,DESC],字段2[ASC,DESC]...)
删除索引
sql> DROP INDEX 索引名
重建索引
sql> REINDEX [索引名,表名]
2.数据分析
对表的索引的分析,ANALYZE命令令集合关于索引的统计信息并将它们储存在数据库的一个特殊表中,查询优化器可以用该表来制作更好的索引选择。 若不给出参数,所有附加数据库中的所有索引被分析。若参数给出数据库名,该数据库中的所有索引被分析。若给出表名 作参数,则只有关联该表的索引被分析。
sql> ANALYZE [索引名,表名]
二、数据清理
大量的删除表中的数据,SQLite并没有释放这些空间,需要运行如下命令精简数据库
sqlite> VACUUM;
三、数据加密
1.自己源码编译
实现源码中预留的加密解密接口
2.使用SQLCipher
源码在这里
step by step的使用过程在这里注意文章中几个宏的下划线没有加,不要盲目的复制粘贴
上一步的SQLCipher源码编译后,目录里面会有个sqlite的命令行程序,使用这个程序就可以给本地的数据库加密,然后很方便的在程序中使用了。具体命令看他的文档
四、查看工具
MesaSQLite Mac OS X下的查看工具,当表的数据比较多时,有点慢
FireFox的 SQLite Manager插件
五、iOS开发第三方封装
1.FMDataBase 方便的存取,在多线程中使用也很方便
2.sqlitepersistentobjects 直接让NS对象本身就有save,load功能,让使用者在不写sql语句的情况下使用SQLite
已经不再更新
参考:
1.http://www.cnblogs.com/stephen-liu74/archive/2012/01/14/2322335.html
2.http://sqlcipher.net
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
· PowerShell开发游戏 · 打蜜蜂