MySQL 的索引,其实就是一套挺精妙的数据结构+算法组合拳。你以为它只是建建 B+树那么简单?其实背后逻辑多着呢。索引优化说白了就是在性能和存储之间找平衡,而这个过程,少不了搞清楚B+树哈希表跳表这些数据结构怎么跟查询效率挂钩。

数据库优化的痛点,多都藏在“索引怎么建”这个问题里。用对了,查得飞快;用错了,全表扫哭你。MySQL 索引底层的结构其实跟你学过的数据结构知识息息相关,尤其是你用 InnoDB 时,B+树、页分裂、最左匹配这些都绕不开。

链接里这个资源合集,讲得还挺系统的。是这篇,把索引的存储结构和查询过程捋得挺清楚,还有一些案例,比如为什么某些索引不走、联合索引怎么踩坑。

另外像这个 PPT,图多,讲算法的时候直观多了,适合平时复盘的时候看看。你要是想从原理学起,把索引学明白,建议几个文档都翻一翻,尤其是和JavaDart结合的那些,扩展性也不错。

如果你正好在排查慢查询,或者想深挖数据库的性能瓶颈,可以把这些文档存着,闲的时候刷一刷,收益还挺大。