社区
MySQL
帖子详情
sql语法中,为什么 like ‘%张三’索引会失效
大表哥bettercong
2019-03-03 09:57:12
sql语法中,为什么 like ‘%张三’索引会失效?
表A中字段a上有索引indexa,查询语句使用
select 列 from A where a like '%张三' 时会出现索引失效的情况?
like语法中 like '%张三'索引失效,like '张三%'索引正常?
请问一下原因
...全文
1717
3
打赏
收藏
sql语法中,为什么 like ‘%张三’索引会失效
sql语法中,为什么 like ‘%张三’索引会失效? 表A中字段a上有索引indexa,查询语句使用 select 列 from A where a like '%张三' 时会出现索引失效的情况? like语法中 like '%张三'索引失效,like '张三%'索引正常? 请问一下原因
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ZTzhubajie
2019-03-04
打赏
举报
回复
索引最左原则
AHUA1001
2019-03-04
打赏
举报
回复
索引其实就是排序,或者说排队更直观。
like '张三%',实际你要找的是'张三XXX',只要把所有'张三'开头的那部分内容返回即可,这部分是连续的,不需要全表扫描。
like '%张三',实际你要找的是'XXX张三',这部分在索引里是不连续的,如果要返回需要的结果,只能全表扫描。
桂浮云
2019-03-03
打赏
举报
回复
以MySQL为例,字段a上的索引实际上是B-Tree索引;B-Tree索引可以用于like查询,但要求like后面为一个不能以%开头的常量字符串。 因此,select 列 from A where a like '%张三' 时会出现索引失效的情况。 可以参见官方文档: https://dev.mysql.com/doc/refman/8.0/en/index-btree-hash.html
索引
失效
的情况及解决(超详细)
my
sql
索引
优化
数据库查询导致
索引
失效
情况
查询age and classId and name时,(age,classId,name)
索引
比(age,classId)快。联合
索引
把频繁查询的列放左。
索引
(a,b,c),只能查(a,b,c),(a,b),(a)。如果主键不自增,需要查找目标位置再插入,并且如果目标位置所在数据页满了就必须得分页,造成性能损耗。计算例如where num+1=2,函数例如abs(num)取绝对值例如name=123,而不是name='123'。又例如使用了不同字符集。
【My
SQL
系列】- LIKE查询 以%开头一定
会
让
索引
失效
吗
LIKE查询以%开头不一定
会
让
索引
失效
。
一篇文章了解Like用法及常见
索引
失效
情况
本文主要通过介绍Like
索引
优化以及全文
索引
,以My
SQL
为例。reverse()应用场景,比如你根据身份证查询一个市洲的人员信息。众所周知,同一个市洲大部分人员身份证前6位是相同的,比如黄石,前六位420222。这个时候你就可以通过reverse()字段,创建身份证后6位的前缀
索引
进行查询。**
My
SQL
索引
优化系列:(三)
索引
失效
我们可能知道,
索引
不是在任何时候都
会
生效的,在很多时候
索引
可能不
会
产生效果,那么到底什么情况
会
导致
索引
失效
呢?
MySQL
57,064
社区成员
56,760
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章