1 .选择唯一性索引
创建unique索引。 此外,如果字段中有唯一的字段,则可以创建唯一的索引。 例如,学生表中的学习编号不重复
2 .在经常排序的字段、分组的表查询的相关字段中创建索引
为经常需要操作的字段(如order by、group by、* join、union和distinct )编制索引。
3 .如果字段经常作为where条件查询,请通过创建索引来加快查询速度
4 .索引数量不能太多
索引并不是越多越好。 请尽量不要修改索引中的字段,因为每次创建索引时都需要占用磁盘空间,更改或插入会增加索引重建和更新的麻烦,并且更新表需要时间
5 .尽量使用字段值小的作为索引
如果索引值很长,查询速度也会受到影响。 例如,char(10 )的查询速度大大快于char(10 )的查询速度
6 .最左前缀匹配原则,这是一个非常重要的原则
mysql向右匹配到查询范围的条件。 例如,(、between、like )停止匹配。 例如
where a=1 and b=2 and c3 and d=4,制作的索引为a,bc,d,此时匹配c后,d如果不能使用索引,则使用a,b,d,c )的索引
7.mysql的=和in可以优化索引
例如,在第六个示例中,创建的索引(a、b、d、c )和abd这三个顺序可以自由排出,并且在执行查询时也可以使用索引。 或者,也可以在where条件中按照a=1 b=2 d=4的顺序任意排列。
8 .索引不能参与计算
例如,如果在时间update字段中创建了索引,则date _ format (更新,’% y-% m-% d’) 2017-01-11”不可用索引。 索引参与计算的参数或使用mysql拥有的函数的参数是索引,不能使用索引。 我曾在项目中使用这个索引参与计算,这一点也需要十分注意。