mysql索引技术名词1-5
索引技术名词
1.回表
注意:
1.如果依靠主键查询,叶子结点直接存储数据----主键B+树
2.如果依靠其他健查询查询,叶子结点存储主键值,再通过主键值查询数据。通过主键值查询数据的过程叫做回表----普通B+树字段查找主键,再到主键B+树查询数据
2.覆盖索引
1:select * from table1 where name='zhangsan'
2:select id from table1 where name='zhangsan'
第一种必须进行回表查询其他字段数据
第二种,其他健的B+树叶子结点已经存储id值,直接返回,不需要进行回表操作。叫做覆盖索引
3.最左匹配原则
id,name,age,gender
给(name,age)创建了组合索引
1:select * from table1 where name='zhangsan'
2:select * from table1 where name='zhangsan' and age=10
3:select * from table1 where age=10
4:select * from table1 where age=10 and name='zhangsan'
第1,2,4种用到了组合索引,最左原则。必须先查左边的name,再查右边的age
第4中因为mysql架构在优化器的时候内部会重构执行流程
4.索引下推
(name,age)组合索引,最左原则
正常情况下:
1.先根据name列从存储引擎中把符合规则的数据拉取到mysql的server曾
2.再server层按照age进行数据过滤
索引下推情况下:
1.直接从存储引擎拉取数据的时候直接按照name和age做判断,将符合的结果返回给mysql的server层
5.谓词下推
select t1.name,t2.name from t1 join t2 on t1.id=t2.id
执行方式:
1:把所有的字段先做表关联,然后再从关联好的表中选择需要的4个字段
2:先把两张表需要的4个字段取出,然后再做表关联
结论:很明显使用第二种,减少不必要的数据量
选择了IT,必定终身学习
posted @ Jeff的技术栈 阅读 (9999+) 评论 (99) 点赞(99) 编辑 MD 收藏
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
2020-03-06 [置顶] 微信小程序+vue+前端其他(目录)