社区
MySQL
帖子详情
sql语法中,为什么 like ‘%张三’索引会失效
大表哥bettercong
2019-03-03 09:57:12
sql语法中,为什么 like ‘%张三’索引会失效?
表A中字段a上有索引indexa,查询语句使用
select 列 from A where a like '%张三' 时会出现索引失效的情况?
like语法中 like '%张三'索引失效,like '张三%'索引正常?
请问一下原因
...全文
1657
3
打赏
收藏
sql语法中,为什么 like ‘%张三’索引会失效
sql语法中,为什么 like ‘%张三’索引会失效? 表A中字段a上有索引indexa,查询语句使用 select 列 from A where a like '%张三' 时会出现索引失效的情况? like语法中 like '%张三'索引失效,like '张三%'索引正常? 请问一下原因
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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 ...
索引
失效
的几种情况
索引
失效
本文参考尚硅谷视频 口诀:带头大哥不能死,
中
间兄都不能断,
索引
列上无操作,范围右边全
失效
,like百分加右边,字符串
中
有引号 准备: 建立员工记录表staffs(id,name,age,pos,add_time) 给表
中
name,age,...
MySQL
56,912
社区成员
56,754
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章