为什么需要索引?
关于这些查找结果的演示推荐:<https://www.cs.usfca.edu/~galles/visualization/Algorithms.html>
这个网站关于数据结构的演示很直观,我们可以通过其中的动画来学习。
比如二叉查找树退化问题:
可以明显看到,由于我们输入的数字是顺序增长的,二叉查找树变成了单边增长的线性结构,这就是复杂度退化。
平衡树(AVL)则没有这个问题:
演示
最佳实践
模糊匹配、类型隐转、最左匹配
对比如下
区别是在 B+Tree 的叶节点存储数据还是指针 MyISAM 索引是非聚集的,InnoDB 主键索引是聚集索引
还有一个辅助索引,我们也可以了解下。
慢查询通常是缺少索引,索引不合理或者业务代码实现所致
slow_query_log_file
开启并且查询慢查询日志explain
排查索引问题