对于索引的优化,我们第一需要找到合适的字段,第二创建索引找到合适的顺序,第三要找到合适的比例,第四是要做合适的维护。
第一需要找到合适的字段。方法有:提高过滤性、降低索引的更新分裂、避免无效索引、非不得已不用外键。
在真实环境中,优化索引主要从以下方面考虑:
给索引的字段设置默认值;
不要让含NULL的字段进入组合索引;
删除过滤性低的字段的索引,可能性能更差;
不能在索引字段上做运算,会失效;
避免频繁更新的字段进入索引,增加IO负担;
尽量覆盖索引,因为MySQL排序效率不高;
第二创建索引找到合适的顺序。方法有提早过滤、减少排序。
在真实环境中,优化索引主要从以下方面考虑:
过滤性越高的字段需要越靠前;
核心SQL覆盖索引,确保尽可能高效;
不干扰过滤前提下,排序字段进入索引;
多SQL综合考虑,重复利用索引;
第三要找到合适的比例,方法是控制索引长度,尤其是较长的字符串字段。
在真实环境中,优化索引主要从以下方面考虑:
必须回表取数据时,字符字段前缀索引;
不用回表取数据时,建议整个字段;
第四是要做合适的维护,方法是定期维护存在频繁增删改字段的索引。
在真实环境中,优化索引主要从以下方面考虑:
在可以的前提下,每月维护(重建)非核心表上的索引;
在可以的前提下,每季/年维护核心表上的索引。
在做DBA的过程中,才知道索引的优化对于一个系统而言是多么的重要。记住很重要的一条:索引不在多,而在于找到最合适的。
该贴由hui.chen转至本版2014-11-5 16:17:02
该贴由hui.chen转至本版2014-11-5 16:22:18