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 数据分组

    详解MySQL 数据分组

    这篇文章主要介绍了MySQL 数据分组的相关资料,帮助大家更好的理解和使用MySQL,感兴趣的朋友可以了解下
    2020-12-12
  • MySQL索引的5种应用

    MySQL索引的5种应用

    本文主要介绍了MySQL索引的5种应用,包含聚集索引,唯一索引,非唯一(普通)索引,全文索引,组合索引等,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • windows下mysql 8.0.16 安装配置方法图文教程

    windows下mysql 8.0.16 安装配置方法图文教程

    这篇文章主要为大家详细介绍了windows下mysql 8.0.16 安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-05-05
  • 解决出现secure_file_priv null的问题

    解决出现secure_file_priv null的问题

    这篇文章主要介绍了解决出现secure_file_priv null的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • MYSQL字符串强转的方法示例

    MYSQL字符串强转的方法示例

    这篇文章主要给大家介绍了关于MYSQL字符串强转的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • MySQL学习笔记2:数据库的基本操作(创建删除查看)

    MySQL学习笔记2:数据库的基本操作(创建删除查看)

    我们所安装的MySQL说白了是一个数据库的管理工具,真正有价值的东西在于数据关系型数据库的数据是以表的形式存在的,N个表汇总在一起就成了一个数据库现在来看看数据库的基本操作
    2013-01-01
  • MySQL触发器实现两表数据同步的代码详解

    MySQL触发器实现两表数据同步的代码详解

    在数据库应用中,我们经常需要对数据进行某些操作,并在操作完成后进行相应的处理,这时候,可以使用触发器来实现这些功能,MySQL提供了强大的触发器功能,本文将给大家详细介绍MySQL触发器实现两表数据同步,需要的朋友可以参考下
    2023-12-12
  • 将图片保存到mysql数据库并展示在前端页面的实现代码

    将图片保存到mysql数据库并展示在前端页面的实现代码

    这篇文章主要介绍了将图片保存到mysql数据库并展示在前端页面,本文给的大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-05-05
  • MySQL临时表的使用方法详解

    MySQL临时表的使用方法详解

    在写查询时我们会经常用到临时表来存储数据,下面这篇文章主要给大家介绍了关于MySQL临时表的使用方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-09-09
  • MySQL中count(distinct col...)组合使用的注意要点详解

    MySQL中count(distinct col...)组合使用的注意要点详解

    @count()是一个聚合函数,返回指定匹配条件的行数,开发中常用来统计表中数据、全部数据、不为null数据或者去重数据,这篇文章主要给大家介绍了关于MySQL中count(distinct col...)组合使用的注意要点,需要的朋友可以参考下
    2024-08-08

最新评论