Sqlite查询优化技巧——将LIKE语句转换为比较语句
来源:互联网 发布:mac air桌面壁纸 高清 编辑:程序博客网 时间:2024/05/21 01:48
项目中用到了数据库,其中一个表有33万条数据。对这个表进行查询,执行类似“SELECT * FROM table1 where ds_key like 'asd%%'”这样的语句,在我的Touch上用了大概11秒,体验很差。
调查发现,虽然已经对table1增加了索引,但是在实际执行的时候,如果查询条件包含LIKE,就不会使用索引。
想知道查询是不是用了索引,可以参考http://www.sqlite.org/eqp.html这个链接提供的方法进行验证。
而改成“SELECT * FROM table1 where ds_key >= 'asd' and ds_key < 'ase'”这样的语句,查询时就会使用到索引,花费时间只有零点几秒,效率提高了几十倍。
当然,这只针对查询以某个字符串开头的记录的情况,而对于like '%%asd%%'这样的就没法优化了。
下面的问题就是如何获得输入关键词的“下一个比它大”的词了。
考虑到字段中还包含中文,最终我写了这样一段代码:
调查发现,虽然已经对table1增加了索引,但是在实际执行的时候,如果查询条件包含LIKE,就不会使用索引。
想知道查询是不是用了索引,可以参考http://www.sqlite.org/eqp.html这个链接提供的方法进行验证。
而改成“SELECT * FROM table1 where ds_key >= 'asd' and ds_key < 'ase'”这样的语句,查询时就会使用到索引,花费时间只有零点几秒,效率提高了几十倍。
当然,这只针对查询以某个字符串开头的记录的情况,而对于like '%%asd%%'这样的就没法优化了。
下面的问题就是如何获得输入关键词的“下一个比它大”的词了。
考虑到字段中还包含中文,最终我写了这样一段代码:
0 0
- Sqlite查询优化技巧——将LIKE语句转换为比较语句
- Sqlite查询优化技巧——将LIKE语句转换为比较语句 -转
- 智能将SqlServer的查询语句转换为分页语句
- Mysql查询语句优化技巧
- mysql like查询语句
- Oracle like语句优化
- Oracle like语句优化
- sql语句查询,多字段like模糊查询优化
- linq to Entities,将查询语句转换为普通的SQL语句
- sqlserver查询语句的优化技巧
- SQL模糊查询语句(like)
- mongodb 数据库like语句查询
- Sql查询语句将数据转换数据格式
- ORACLE中LIKE语句优化
- ORACLE中LIKE语句优化
- Like SQL语句的优化
- ORACLE中LIKE语句优化
- MySql 优化之like语句
- 安装使用lrzsz
- java自动资源管理
- CSS3属性之box-shadow
- 【日常学习】【二分】【单调队列优化线性DP】codevs3342 绿色通道题解
- 51nod 1437:迈克步 单调栈基础题
- Sqlite查询优化技巧——将LIKE语句转换为比较语句
- web 性能测试中的几个关键指标:并发用户数,QPS,用户平均请求等待时间
- 单例模式中静态类成员变量初始化问题
- 使用Visual Studio编译7z源码
- Linux下安装配置TEXLive2015的方法
- VS 开发 Apache 服务模块
- 自定义视图,在UIView基础上增加--iOS开发
- 如何安装离线下载的SDK包
- ftp测试练习