数据库的用户表性别需要建立索引吗

今天朋友问我说,今天去面试的时候面试官问他,用户表的性别需要创建索引吗?  (tinyint)

他的回答是看情况,可加可不加

而面试官期望的回答应该是不加,并且解析是根据笛卡尔积理论巴拉巴拉。。。

简单的说吧,一般不需要,因为性别,暂且就两个值男与女。一般而言男与女比例是平衡的。

索引的选择性是指索引列中不同值的数目和表的记录数的比值,假如表里面有1000条数据,表索引列有980个不同的值,这时候索引的选择性就是980/1000=0.98 。

索引的选择性越接近1,这个索引的效率很高。

如果为性别创建索引,查询语句 性别 = 1(男)的数据,索引的选择性就是 3/1000=0.003

索引的选择性值很低,对查询提升不大,所以为这两个值建立索引是不值得的。

因为无论多少条记录,建立性别的索引,最多让你的语句少检索一半, 但与建立索引带来的损失比,  可以说是因小失大

转贴的文章mysql

mysql数据库死锁的产生原因及解决办法

2021-3-11 20:15:14

工作日志mysql

MySQL主从,不停机添加新从库

2021-3-24 1:30:00

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧