Mysql索引优化
就像我们经常知道的在数据库中我们可以通过设置索引来加快查询的速度。可是如果索引设置不合理也有可能导致非常不好的后果。
我们大家都知道的是mysql默认的引擎是innodb,建议不知道的去了解一下innodb。索引分为主索引、辅助索引。主索引会维护一个单独的B+树,B+树叶子节点对应行数据。而辅助索引同样也会维护一个B+树,它的叶子节点对应主索引。因此如果使用辅助索引的话,就需要两次搜索B+树。
下面几点是我们在建立索引的时候需要注意的:
- 主键使用与业务无关的单调自增的数字,这样的话会减少在更新索引表的调整。
- 在使用联合索引的,注意联合索引字段的顺序,因为索引使用的是最左匹配,如果在查询的时候没有使用第一列,那么就不会使用到这个索引。这个要求我们在建立索引的时候需要考虑相应的业务,看业务对哪一个列的查询比较频繁并且该列的区分度比较大。
- 主键索引不应该过大,因为辅助索引会利用主键索引的值,如果主键过大,会导致辅助索引也会增大。