- 前提:
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条件执行过程分析
最新推荐文章于 2023-12-21 21:30:00 发布
本文深入探讨了MySQL数据库在执行带有多个筛选条件的SELECT语句时的具体步骤,包括使用索引进行快速定位、通过index filter进一步精确匹配以及利用table filter完成最终的数据筛选,详细解析了索引使用和数据过滤的全过程。

865

被折叠的 条评论
为什么被折叠?



