关注联楷|返回首页 | 网站案例 | 帮助中心

合作共赢、快速高效、优质的网站建设提供商

上海网站建设 

服务热线:021-61394118

上海联楷科技

null值对统计信息的影响

作者:佚名   时间:2014-11-22   分享到:

虽然都是使用b-tree索引,但是myisam索引和oracle索引的处理方式不太一样,myisam的索引中会记录值为null的列信息,只不过null值的索引键占用空间非常少,所以,null值的处理方式可能会影响到mysql的查询优化器对执行计划的选择,于是mysql提供了myisam_stats_method这个参数让我们可以自行决定对索引中的null值的处理方式.
  myisam_stats_method参数的作用就是告诉myisam在收集统计信息的时候,是认为所有null值等同,还是每个null值是完全不相等的,所以可设置的值也为nulls_unequal和nulls_equal.
  当设置myisam_stats_method=要_并转,myisam在搜索统计信息时会认为每个null值都不同,则基于这个字段索引的cardinality就会更大,也就是说myisam会认为distinect值数量更多,这样就会让查询优化器处理query的时候使用这个索引的倾向性更多.
  而在设置myisam_stats_method=nulls_equal之后,myisam搜集统计信息的时候则会认为每个null值都是一样的,这样cardinality数值会降低,优化器选择执行计划的时候放弃这个索引的倾向性更高.
 



如没特殊注明,文章均为上海联楷网络原创,转载请注明来自:http://www.linksj.com/hynews/20151126/n3528.html

上海联楷网络新闻