查看Sql语句执行速度
2016-06-21 16:39
260 查看
原文链接:http://www.cnblogs.com/New-world/archive/2012/11/28/2793560.html
MS_SQL模糊查询like和charindex的对比
like查询效率低下,网上搜了一下替代like查询的方法,都是说用charindex方法,自己对比了一下查询速度
test1表中有一千两百多万条数据,我只给ID加了索引
先看一下 '%我%'这种模糊查询:
查询结果:
![](https://pic002.cnblogs.com/images/2012/374707/2012112822550097.png)
两者的时间差不多,不过要是在千万、乃至上亿的数据中还是能明显感觉到两者的查询速度吧。
再看下'我%'这种的模糊查询:
查询结果:
![](https://pic002.cnblogs.com/images/2012/374707/2012112822583231.png)
次奥!谁说charindex的效率比like高的?砍你丫的!
所以需要在不同条件下选择两种模糊查询,'%我%'这种的就用charindex,'我%'这种的就用like!
MS_SQL模糊查询like和charindex的对比
like查询效率低下,网上搜了一下替代like查询的方法,都是说用charindex方法,自己对比了一下查询速度
test1表中有一千两百多万条数据,我只给ID加了索引
先看一下 '%我%'这种模糊查询:
declare @q datetime set @q = getdate() select ID,U_Name,U_Sex,U_Age,U_Address from test1 where U_Name like '%我%' select [like执行花费时间(毫秒)]=datediff(ms,@q,getdate()) declare @w datetime set @w = getdate() select ID,U_Name,U_Sex,U_Age,U_Address from test1 where charindex('我',U_Name) >0 select [charindex执行花费时间(毫秒)]=datediff(ms,@w,getdate())
查询结果:
![](https://pic002.cnblogs.com/images/2012/374707/2012112822550097.png)
两者的时间差不多,不过要是在千万、乃至上亿的数据中还是能明显感觉到两者的查询速度吧。
再看下'我%'这种的模糊查询:
declare @q datetime set @q = getdate() select ID,U_Name,U_Sex,U_Age,U_Address from test1 where U_Name like '我%' select [like执行花费时间(毫秒)]=datediff(ms,@q,getdate()) declare @w datetime set @w = getdate() select ID,U_Name,U_Sex,U_Age,U_Address from test1 where charindex('我',U_Name) >0 select [charindex执行花费时间(毫秒)]=datediff(ms,@w,getdate())
查询结果:
![](https://pic002.cnblogs.com/images/2012/374707/2012112822583231.png)
次奥!谁说charindex的效率比like高的?砍你丫的!
所以需要在不同条件下选择两种模糊查询,'%我%'这种的就用charindex,'我%'这种的就用like!
相关文章推荐
- MySQL基础操作
- MySQL函数一览_MySQL函数全部汇总
- MySQL数据记录基本操作——多表查询、子查询和正则表达式查询
- oracle11g 使用数据泵导出导入数据
- 数据库查询语句拾遗
- mysql水平拆分与垂直拆分的详细介绍
- SparkSQL和Hive在做cast boolean存在的不同
- Oracle数据类型
- Redis3.0-集群环境搭建
- 数据库垂直拆分与水平拆分概念
- 访问 IIS 元数据库失败
- oracle: 执行计划 1 ---预备知识和概念
- SQL中游标的用法
- ORACLE会话连接进程三者总结
- centos 6.7安装mongodb
- sql之left join、right join、inner join的区别
- Spring-data-mongodb Criteria类介绍
- mysql笔记之最基本
- mysql 5.7.12 winx64安装配置方法图文教程
- oracle 中的group by ,having 和order by