一般都如何设计索引

    • 搜索的索引列,如在where子句的列或连接子句指定的列
    • 使用唯一索引,考虑某列的分布,索引的列基数越大索引的效果越好
    • 使用短索引,如一个char(200)列,如果前10或20个字符内,多数值能唯一,那么就不要对整个列进行索引,且可以节约索引空间,索引高速缓存中容纳更所的键值,
    • 利用最左前缀,建立n列索引如(c1,c2,c3),相当于建立(c1),(c1,c2)(c1,c2,c3),索引
    • 不要过度使用索引,每个索引都会占用额外的磁盘空间,会降低写操作的性能,且每次修改表内容的时候,索引就会进行更改,也会增加执行计划正确的选择更优的索引复杂度
    • 对于InnoDB存储引擎的表,记录默认会按照一定的顺序保存,如果指定了主键,按照主键顺序保存,如果没有之间但是有唯一索引,按照唯一索引排序,如果既没有主键也没有唯一索引,内部会生成一个内部列,按照这个列进行排序,主键和内部类进行访问是最快的,所以尽可能的指定主键,主键尽可能的短