MySQL中的性别字段到底加不加索引

 更新时间:2024年04月11日 09:06:14   作者:chengxunzun  
这篇文章主要介绍了MySQL中的性别字段到底加不加索引问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

准备

首先针对MySQL 性别字段到底加不加索引,其实按照创建索引的原则之一 区别度高的情况下才会使用索引,为什么?

区别度低难道就不能使用索引?区别度低难道使得索引失效了吗?

给MySQL的性别字段添加索引,MySQL到底是否会使用?

环境

MySQL 5.7 & MySQL8.0 两个版本最常用的,如果得到的结论是一致的,那么就摒弃版本不一样的问题。

MySQL8.0 t1 数据量100w ;MySQL5.7 sys_user 10w

测试

MySQL8.0, 不加索引查询 ,select * from t1 where sex = ‘男’ ,耗时0.624s ,可以看到是全表扫描

MySQL8.0, 性别 加索引查询 ,select * from t1 where sex = ‘男’ ,耗时1.305s,可以看到使用到了索引,并不是索引失效

MySQL5.7, 不加索引查询 ,select * from t1 where sex = ‘男’ ,耗时1.006s,可以看到是全表扫描

MySQL5.7, 加索引查询 ,select * from t1 where sex = ‘男’ ,耗时 1.098s,可以看到使用到了索引

总结

MySQL 性别字段到底加不加索引,实际上与索引创建规则之一 区分度有关,性别字段假设有100w数据,50w男、50w女

区别度几乎等于 0 , select count(DISTINCT sex)/count(*) from sys_user ,实际上对于性别字段不适合创建索引,是因为select * 操作,还得进行50w次回表操作

根据主键从聚簇索引中找到其他字段 ,这一部分开销从上面的测试来说还是比较大的,所以从性能角度来看 不建议性别字段加索引,加上索引并不是索引失效,而是回表操作使得变慢的

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • MySql .frm数据库文件导入的问题

    MySql .frm数据库文件导入的问题

    手头有.frm 文件,怎样导入数据库啊?
    2009-07-07
  • Mysql中的日期时间函数小结

    Mysql中的日期时间函数小结

    本文主要介绍了Mysql中的日期时间函数小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • MySQL简化输入小技巧

    MySQL简化输入小技巧

    在这里我将介绍两个使用MySQL数据库时候简化输入的小技巧。
    2011-09-09
  • MySQL ifnull的嵌套使用说明

    MySQL ifnull的嵌套使用说明

    这篇文章主要介绍了MySQL ifnull的嵌套使用说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • MySQL如何实现事务的ACID

    MySQL如何实现事务的ACID

    这篇文章主要介绍了MySQL如何实现事务的四大特性,帮助大家更好的理解和学习MySQL数据库,感兴趣的朋友可以了解下
    2020-09-09
  • MySQL中查询JSON字段的实现示例

    MySQL中查询JSON字段的实现示例

    MySQL自5.7版本起,对JSON数据类型提供了全面的支持,本文主要介绍了MySQL中查询JSON字段的实现示例,具有一定的参考价值,感兴趣的可以了解一下
    2024-06-06
  • mysql中怎样使用合适的字段和字段长度

    mysql中怎样使用合适的字段和字段长度

    这篇文章主要介绍了mysql中怎样使用合适的字段和字段长度问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • mysql如何查询日期与时间

    mysql如何查询日期与时间

    这篇文章主要介绍了mysql如何查询日期与时间,帮助大家更好的理解和学习mysql,感兴趣的朋友可以了解下
    2020-08-08
  • Mysql优化之Zabbix分区优化

    Mysql优化之Zabbix分区优化

    这篇文章主要介绍了Mysql优化中Zabbix分区优化的详细方法和优缺点分析,一起学习下。
    2017-11-11
  • MySQL复制问题的三个参数分析

    MySQL复制问题的三个参数分析

    这篇文章主要介绍了MySQL复制问题的三个参数分析,帮助大家更好的理解和学习使用MySQL数据库,感兴趣的朋友可以了解下
    2021-04-04

最新评论