索引使用建议:被频繁更新的字段应该慎重建立索引。
如何正确的来使用一些索引?
·首先可以选择合适的字段来创建索引,不为Null字段,被频繁查询的字段、条件查询的字段以及频繁需要排序的字段以及频繁被连接查询的字段,这些都可以考虑作为索引的字段。如果被频繁更新的字段应该慎重的建立索引,如果被频繁更新,如果以它为索引字段会不断的重构索引树,会造成性能的开销。
·我们也需要限制每张表上的索引的数量,SQL优化器生成执行计划的建议单表索引不能超过5个ySQL代化器生成执行计划的,因为MySQL优化器加My5QL代化器生成执行计划的,在选择如何优化查询的时候会根据统一的信息对每一个可以用到的索引来进行评估,已生成出最好的执行计划。
如果同时有很多个索引都用于查询,那么就会增加MySQL优化器生成执行计划的时间从而降低查询性能,尽量的建立联合索引而不是单列索引。
每个索引都对应了一个B+树,联合索引又相当于是多个索引,那么素引()就是冗余,包含了单列素引,所以尽量建立联合索引号(),避免冗余索引。联合索引ab和索引a相当于是联合索引ab就包含索引a,a就是冗余,在使用字符串类型的字段应该使用前缀索引来代替普通索引,因为前缀索引比普通索引占用的空间更小。
·删除长期未使用的索引,也可以通过执行计划分析来是否走索引,explain,它并不会是真正的去执行相关的语句,而是通过查询优化器对语句进行分析,找出最优的查询方案,并显示对应的信息。对于这些我相信你也能正确的使用索引了。