原文链接:http://www.cnblogs.com/New-world/archive/2012/11/28/2793560.html

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())

查询结果:

两者的时间差不多,不过要是在千万、乃至上亿的数据中还是能明显感觉到两者的查询速度吧。

再看下'我%'这种的模糊查询:

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())

查询结果:

次奥!谁说charindex的效率比like高的?砍你丫的!

所以需要在不同条件下选择两种模糊查询,'%我%'这种的就用charindex,'我%'这种的就用like!

转载于:https://www.cnblogs.com/mrzhoushare/p/5604140.html

查看Sql语句执行速度相关推荐

  1. Oracle 查看sql语句执行计划方法

    注意这篇文章只介绍查看sql语句执行计划的方法, 并不是说明如何看懂执行计划. 一般来讲, 直接在sqlplus 执行 set autotrace on; 就可以了 其前提是登陆用户必须有视图  v_ ...

  2. MySQL 查看SQL语句执行阶段和进度信息

    MySQL 查看SQL语句执行阶段和进度信息 测试MySQL版本:5.7.31 根据<MySQL性能优化金字塔法则>做的实验,好书推荐! 我们在创建索引时,经常需要等待执行的SQL一段时间 ...

  3. MySQL查看SQL语句执行效率和mysql几种性能测试的工具

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  4. mysql 压力测试知乎_MySQL查看SQL语句执行效率和mysql几种性能测试的工具

    网络中整理,记录下,朋友们应该用得到! Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮 ...

  5. MySQL查看SQL语句执行效率

    Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看 SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好 ...

  6. Oracle sql语句执行过程图文分析

    这个可以算是学习笔记吧, 是参照甲骨论老相老师的视频做的: http://www.jiagulun.com/thread-2674-1-1.html 1.数据库文件 Oracle 数据库文件大概可分为 ...

  7. 详解MySQL的逻辑架构和SQL语句执行流程

    文章目录 1. 逻辑架构 1.1 连接层 1.2 服务层 1.3 引擎层 1.3.1 InnoDB 存储引擎 1.3.2 MyISAM 存储引擎 1.3.3 其他存储引擎 1.4 存储层 3. SQL ...

  8. 不带参数的SQL语句执行方法

    不带参数的SQL语句执行方法 以下是不带参数的SQL语句执行方法的代码,它调用通用数据访问类(SqlHelper)执行 SqlHelper.ExecuteNonQuery()方法,使用示例为; int ...

  9. 判断resultset是否遍历到最后一条记录_干货:一条SQL语句执行得很慢的原因

    说实话,这个问题可以涉及到 MySQL 的很多核心知识,可以扯出一大堆,就像要考你计算机网络的知识时,问你"输入URL回车之后,究竟发生了什么"一样,看看你能说出多少了. 之前腾讯 ...

  10. MySQL探秘(二):SQL语句执行过程详解

    只有更加全面地了解SQL语句执行的每个过程,才能更好的进行SQL的设计和优化.  当希望MySQL能够以更高的性能运行查询时,最好的办法就是弄清楚MySQL是如何优化和执行查询的.一旦理解了这一点,很 ...

最新文章

  1. Android面试题收集
  2. Request对象 --web浏览器向web服务端的请求
  3. spring boot整合spring5-webflux从0开始的实战及源码解析
  4. 把所有的谎言献给你β(找规律数学题)
  5. 创业动力衰减 中国面临危险挑战
  6. 安卓逆向代码反混淆 Simplify工具 JEB2反混淆神器
  7. 鸿蒙adb调试权限,真机ro.debuggable全局调试权限修改为1(Nexus 6为例)
  8. 数据库每日一题 2020.05.09
  9. 一分钟了解“Matlab画三维空间中的点plot3”
  10. cpu超线程优缺点_超线程对游戏性能会影响?
  11. 隐匿在数据结构背后的原理
  12. 大数据安装之hadoop-3.3.4
  13. Ruby语言的特别之处
  14. tensorrt expecting compute 7.5 got compute 6.1, please rebuild
  15. linux中彻底分析#!bin/sh是什么意思
  16. MySQL实战45讲——MySQL是怎么保证数据不丢的?
  17. Python获取英雄联盟的皮肤原画:新手玩家们都懵了!(一)
  18. BUG一词是如何来的?
  19. 快手私信大卡片逆向分析
  20. 华硕B660重炮手主板核显无法识别硬盘处理方案

热门文章

  1. 淘宝现重大BUG,是程序员报复?官方回应
  2. 您从事运维有几年了?
  3. python2.7没有pip_python2.7无法使用pip怎么办
  4. 如何提升人脸识别的精度_宝比万像人脸识别:健身房人脸识别门禁系统如何助力健身房管理?...
  5. *第十一周*数据结构实践项目一【二叉树的层次遍历算法】
  6. [js]promise学习2
  7. JS等比例缩小图片尺寸
  8. 强烈推荐深入浅出jBPM
  9. FZU 2082 过路费(树链剖分 边权)题解
  10. ELK + Filebeat日志分析系统安装