虽然都是使用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数值会降低,建设器选择执行计划地时候放弃这个索引地倾向性更高.北京欢迎你科技有限公司原创文章,关键词:北京网站建设 北京建网站 北京网站制作 转载请注明出处:www.bjhyn.cn
谢谢! |