Mysql 列少的字段不建议使用索引

选择性低(指字段值种类比较少,比如性别字段只有男、女)
但经常出现在where条件中的字段到底建不建索引?

不建议建,意义不大
当数据达到一定值时,都会走表扫描,是否走索引要看男/女在表占用的比例
在SQL2005时计算选择性的比例为 满足条件的行数/总行数<=0.7181,会走索引,其它会走表扫描,需要考虑特殊情况比如表数据量小<64K,SQL2012之后的版本是用列存储计算大小方式又有所不同
参照选择性就行了,有兴趣可以自己去不同版本中去测试,意义不大,掌握大概就行了

 

不太建议建,索引同样会占用硬盘空间的,数据量很大的时候,也是很恐怖的,再从另外一个方面说下 我的观点,这是因为这样的数据会分散在几乎所有的数据页中,这样的话,其实就是要把所有的数据页都加载到内存中了,这样的话,如果走索引,也是同样要加载所有的数据页到内存中,那索引这个步骤不就是多余了吗,要知道,索引中存在的数据,是在每一个个数据页中的,一个数据页会存有相应索引范围的一批数据的,而数据页是存放在硬盘上的

posted @ 2021-04-01 10:39  皇问天  阅读(1172)  评论(0编辑  收藏  举报