Mysql索引怎么设置更加合理( 二 )


 
聚集索引
Inndb主键索引是聚簇索引,其叶子节点则记录了主键值事务id、用于事务和MVCC的回流指针以及所有的剩余列,其他非主键索引是非聚集索引

Mysql索引怎么设置更加合理

文章插图
 
5、MySQL的索引-设计原则
  1. 对查询频次较高,且数据量比较大的表建立索引 。
  2. 索引字段的选择,最佳候选列应当从where子句的条件中提取,如果where子句的组合比较多,那么应当选择最常用、过滤效果最好的列的组合
  3. 使用唯一索引,区分越高,使用索引的效率越高 。
  4. 索引可以有效提升查询数据库的效率,但是索引数量不是多多益善,索引越多,维护索引的代,价自然也就水涨船高 。对于插入、更新、删除等DML操作比较频繁的表来说,索引过多,会映入相当高的维护代价,境地DML操作的效率,增加相应操作的时间消耗 。另外索引过多的话MySQL也会犯选择困难病,虽然最终仍然会找到一个可用的索引,但无疑提交了选择的代价
  5. 使用短索引,索引创建之后也是使用硬盘来存储,因此提升索引访问的I/0效率,也可以提升总体的访问效率 。假如构成索引的字段总长度比较短,那么在给定大小的存储块内可以以存储更多的索引值,相对应的可以有效的提升MySOL访问索引的I/O效率
  6. 利用最左前缀,N个列组合而成的组合索引,那么相当于是创建了N个索引,如果查询时where子句中使用了组成该索引的前几个字段,那么这条查询SOL可以利用组合索引来提高查询效率




推荐阅读