- 前提:
mysql逻辑架构
存在索引index(name,age)
一个select语句一次只会查询一次索引(index merge除外)
记录有:
1:name=‘zhangsan’ age=10
2:name=‘zhangsan’ age=20
3:name=‘lisi’ age=20 - 问:
select * from user where name=‘zhangsan’ and age=20 and sex=‘男’
此查询语句mysql数据库的执行过程分析? - 答:
此where条件包含mysql处理不同条件类型:
index key:第一个索引列,用于确定索引范围(确定了1和2记录,索引结构B+树是有顺序的),发生在存储引擎层
index filter:对索引进行过滤,需要ICP的支持(将index filter从原来的service层下放到存储引擎层),发生在存储引擎层(确定了记录2)
table filter:索引中没有的条件,对表进行过滤,发生在service层(过滤sex=‘男’)
mysql查询语句where条件执行过程分析
最新推荐文章于 2024-04-09 18:40:31 发布