mysql的索引并不是红黑树的数据结构,是B+树,红黑树是一种自平衡二叉树。而B+树是一种N叉树,之所以用N叉树,是为了减少遍历的层数,也就是减少与磁盘交互的次数,加快查询效率。。而在这样的场景下,用红黑树是完全不行的。
不仅是为了减少层数,还有减少为了维持平衡而做的旋转。前者减少读操作,后者减少读写操作
“执行没有走索引”,这里应该是想问索引失效场景吧(参与函数运算,联合索引不匹配,类型不匹配,null 等)
极客时间
time.geekbang.org/column/arti…
mysql优化器对查询的时候简单统计的,比如where条件中有两个条件,一个走了索引,一个没走索引,mysql会抽查,看哪个情况的数据扫描行数少,选择哪个条件,这个时候就可能不会走索引了,可以用force index强制走索引解决这个问题