社区
MySQL
帖子详情
sql语法中,为什么 like ‘%张三’索引会失效
大表哥bettercong
2019-03-03 09:57:12
sql语法中,为什么 like ‘%张三’索引会失效?
表A中字段a上有索引indexa,查询语句使用
select 列 from A where a like '%张三' 时会出现索引失效的情况?
like语法中 like '%张三'索引失效,like '张三%'索引正常?
请问一下原因
...全文
1693
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
总结
sql
语句
中
索引
失效
的情况
总结一下
sql
优化
中
sql
语句里
会
导致
索引
失效
的语句(
索引
失效
,导致全表扫描) 1、like的前置% eg. select * from user where name like '%
张三
%'; 2、where条件
中
的 or 语句 eg. select * from user where ...
SQL
优化--查询语句
中
,
索引
失效
的几种场景
若
索引
列是字符串类型,但WHERE条件使用数字比较,
会
触发隐式转换导致
失效
。连接的字段
中
有一个无
索引
,则整个查询可能全表扫描。),可能导致优化器无法预判
索引
效果而选择全表扫描。时,
索引
通常
失效
(主键列可能...
彻底搞懂
SQL
优化:EXPLAIN、
索引
失效
与性能瓶颈全拆解
索引
不是万能的,写
SQL
时要避免函数、运算、类型转换、错误顺序、模糊匹配等操作,才能让
索引
乖乖发挥作用!优先找出慢
SQL
使用发现当前执行慢的
SQL
;使用慢查询日志定位;配合 APM(如阿里云 DBA助手、腾讯 ...
My
SQL
--
索引
失效
索引
失效
就是在查询已经创建了
索引
的字段
中
却没有走
索引
,走的是全表扫描。其实看有没有走
索引
只需要加上 explain,查看 type 为 ALL 就行了。下面的图就是
索引
失效
。下面介绍一下有哪些
会
导致
索引
失效
?like %xx ...
SQL
索引
优化:提升查询效率百倍技巧
重点阐述了
索引
设计原则(区分度、最左前缀)、常见
失效
场景(函数计算、LIKE%开头等)和优化策略,强调要平衡读写性能,避免过度
索引
。通过实战案例对比优化前后效果,指出
索引
是"双刃剑",需结合业务...
MySQL
57,063
社区成员
56,762
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章