MySQL索引原理和慢查询优化
MySQL用的是B+ tree索引。数据是存储在磁盘上的,所以如果是索引是基于二叉树的话,这样涉及到很多次的磁盘I/O,I/O次数取决于树的高度,大大降低了查询的速度。使用B+树这种多路搜索树结构,可以三次I/O实现百万级数据的查询。
建立索引的原则:
最左前缀匹配原则,非常重要的原则,mysql会一直向右匹配直到遇到范围查询(>、<、between、like)就停止匹配,比如a = 1 and b = 2 and c > 3 and d = 4 如果建立(a,b,c,d)顺序的索引,d是用不到索引的,如果建立(a,b,d,c)的索引则都可以用到,a,b,d的顺序可以任意调整。
参考链接:
http://tech.meituan.com/mysql-index.html