zoukankan      html  css  js  c++  java
  • iOS开发中的SQLite知识总结

    一、查询优化

    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

  • 相关阅读:
    SQL后台分页三种方案和分析
    SQL分页查询语句
    SQL利用临时表实现动态列、动态添加列
    查询sybase DB中占用空间最多的前20张表
    敏捷软件开发之TDD(一)
    敏捷软件开发之开篇
    Sql Server 2012启动存储过程
    改变VS2013的菜单栏字母为小写
    Sql Server获得每个表的行数
    Sql Server trace flags
  • 原文地址:https://www.cnblogs.com/v2m_/p/2846177.html
Copyright © 2011-2022 走看看