无论是在大型项目,还是小型项目中,随着业务的迭代,用户的增长,数据库数据往往都是成百万级别的,这时候普通的sql语句执行起来是非常慢的,这时候就需要对sql进行优化啦,接下来将手把手从索引原理带你学会如何分析优化,写出一手高逼格的sql。
Mysql的索引存储原理:
mysql有两种索引:**hash**和**b+tree**
select * from user where age = 10 (生效)
select * from user where age > 10 (不生效)
(如上图)hash索引:Hash 进行检索效率非常高,通过对key进行hash并可以找到对应的数据,但是它是**不支持范围查询**的,如上面的sql
(如上图)b+tree索引:它是由一个个磁盘块组成的。形成一颗树,特性如下
1, 非叶子节点只存储主键
2, 叶子节点存储数据,并且数据与数据之间有指针关联,这就是为什么范围查询b+tree起到作用了。
3,需要注意的是,b+tree形成的时候就已经按照索引的顺序排列了。
**疑问**:
1,为什么b+t