社区
MS-SQL Server
帖子详情
关于like与索引的问题。
种草德鲁伊
2010-09-03 08:35:21
网上的说法 : 将通配符放在前面 like '%aa' 这样不会使用索引,像 like 'aa%' 这样会使用索引。
自己试验了一下,在SQL2005的实际执行计划中可以看到 like 'aa%' 使用了表扫描,like '%aa' 才是用了索引。
请教一下,实际上like是否使用索引和什么情况有关呢
...全文
342
6
打赏
收藏
关于like与索引的问题。
网上的说法 : 将通配符放在前面 like '%aa' 这样不会使用索引,像 like 'aa%' 这样会使用索引。 自己试验了一下,在SQL2005的实际执行计划中可以看到 like 'aa%' 使用了表扫描,like '%aa' 才是用了索引。 请教一下,实际上like是否使用索引和什么情况有关呢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
缪军
2012-09-28
打赏
举报
回复
在MSDN讨论like和通配符的文档中确实提到:
使用%开头的通配符无法使用索引,
但是,另一方面,
你的SELECT列表中的字段的索引仍然是可能会被查询优化器使用,
无论他是否出现在你的where子句中,
结合第一段的描述,
由于无法定位查询开始的位置,索引不一定对你的where子句的性能提高起到作用
种草德鲁伊
2010-09-03
打赏
举报
回复
还是没弄明白,试过几种情况,有时候通配符放哪都会使用索引,求高手们解释一下..
fanzhouqi
2010-09-03
打赏
举报
回复
这个,选择东西的多少有关。select 出来的东西多就不走索引了。
广交天下好友
2010-09-03
打赏
举报
回复
路过!路过!
幸运的意外
2010-09-03
打赏
举报
回复
网上说的有理。其实比较一下两种查询的速度就可以得出结论。通配符在具体字符后,索引起作用。
即like ‘aa%’索引起作用
xiaoxiao8372
2010-09-03
打赏
举报
回复
你说的对,确实是这样!
JAVA代码审计之SQL注入
本章节课程主要从以下三方面详细的介绍了如何针对java代码中sql注入的审计方法及黑盒验证: 1、JDBC连接方式下sql注入的存在的形态及修复方法,like、in情况在如何安全使用预处理来防范sql注入 2、在使用Mybatis框架...
sql like模糊查询与
索引
目录一、like与
索引
二、优化like查询三、查询 %xx 的记录 一、like与
索引
like %keyword
索引
失效,使用全表扫描。但可以通过翻转函数 + like前模糊查询 + 建立翻转函数
索引
= 走翻转函数
索引
,不走全表扫描。 like keyword%
索引
有效 like %keyword%
索引
失效,也无法使用反向
索引
。 二、优化like查询 使用下面的函数来进行模糊查询,如果出现的位置 > 0,则表示包含该字符串。查询效率比 like 要高。 例如: table.field l
如何使Like使用
索引
如何使Like使用
索引
不考虑
索引
覆盖的情况下只要like后需要匹配的字段前加%,
索引
就会失效。但是后面加%,能使用
索引
测试:表结构Test case 1:结果:Test case 2:结果:Test case 3:结果:考虑
索引
覆盖的情况下,like无论什么情况都会使用
索引
测试:表结构:Test case 1:结果:Test case 2:结果:Test case 3:结果: 不考虑
索引
覆盖的情况下 只要like后需要匹配的字段前加%,
索引
就会失效。但是后面加%,能使用
索引
测试: 表结构 CREATE T
sql like与
索引
(后模糊匹配才能让
索引
有效)
索引
与优化like查询 1. like %keyword
索引
失效,使用全表扫描。但可以通过翻转函数+like前模糊查询+建立翻转函数
索引
=走翻转函数
索引
,不走全表扫描。 2. like keyword%
索引
有效。 3. like %keyword%
索引
失效,也无法使用反向
索引
。 1. 使用下面的函数来进行模糊查询,如果出现的位置〉0,表示包含该字符串。 查询效率比like要
like查询
索引
失效
问题
与解决办法
一.like查询与
索引
在oracle里的一个超级大的表中,我们的where条件的列有建
索引
的话,会走
索引
唯一扫描INDEX UNIQUE SCAN。如select * from table where code = 'Cod25',而如下这些语句哪些会走
索引
呢? Sql代码 select*fromtablewherecodelike'Code2%' ...
MS-SQL Server
34,593
社区成员
254,590
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章