如何彻头彻尾了解 MySQL 的索引

作者/分享人:张宏杰
向 Ta 提问
宏杰,河北大学计算机硕士,资深工程师一枚,10年+工作经验。先后就职于青牛软件科技有限公司,用友集团。曾在用友担任架构师职务。设计过用友薪福社HR Saas底层开发框架架构,专注前沿互联网技术,对mysql 有深入研究,曾在公司担任 mysql 数据库顾问。

如果正确合理设计并且使用索引的 MySQL 是一辆兰博基尼的话,那么没有设计和使用索引的 MySQL 就是一个人力三轮车。没有索引的表,单表查询可能几十万数据就是瓶颈,那到底该如何应对互联网企业的上亿的数据?

MySQL 中的 InnoDB 存储引擎的核心在于索引,索引的核心在于 B+tree,所以说要想了解 MySQL 中索引,我们必须要先了解 B+tree ,而 B+tree 的说白了就是一颗平衡多叉树。

通过本场 Chat 你能够获得一下内容:

  1. 二叉树的转置。
  2. B+tree 详解,知道 B+tree 到底是创建,转置的,每一层到底有多少个节点?
  3. 聚簇索引和非聚簇索引的区别;以及在索引上到底存储的是什么,为什么聚簇索引索引只需要一次查找,而非聚簇索引需要两次?
  4. B+tree 如何进行优化?索引遵循哪些原则?存储引擎会进行哪些自动优化?到底何时索引会失效?
  5. 索引与锁有什么关系?
  6. 还有什么其他的索引类型,各自索引有哪些优缺点?
已有198人预订
预订达标
文章出炉
     
07月20日
08月06日
本场 Chat 文章已出炉,购买后即可阅读文章并获得一张张宏杰的读者圈Pass
请务必添加GitChat服务号以查看活动进度及获取活动通知。
查看文章评论/提问
zero
6、不在索引列上做任何操作(计算,函数,(自动或者手动)类型装换),会导致索引失效而导致全表扫描。 这句的意思,应该是在索引列上做操作会导致索引失效吧。
GaoLiaoLiao
节点页只包含了索引列,这里“节点页”是什么意思呢?
新阳
树的转置和索引的存储和查询有什么关联?
你可能还喜欢
Docker+K8S 集群环境搭建及分布式应用部署
李熠lynn
JVM 精华知识点汇总
胡玉洋
Docker 入门之个人博客搭建教程
一念成魔
前端游戏框架哪个好
cba
MySQL 数据同步双机互备
小闲丶
美团客户端响应式框架 EasyReact 开源
美团技术团队
微信扫描登录