mysql性别字段不适合做索引_为什么说性别字段不适合做索引?

关于区分度不高的字段,比如性别,比如状态字段,是否应该建索引?

只有2种取值的字段,建了索引数据库也不一定会用,只会白白增加索引维护的额外开销,因为索引也是需要存储的,所以插入和更新的写入操作,同时需要插入和更新你这个字段的索引的.

所以说,唯一性太差的字段不需要创建索引,即便用于where条件.

相关,建立联合索引时,也要考虑把重复率低而又用得多的列放在前面.

比如: key (attr_id, attr_value)

联合索引左匹配:单查 attr_id 也能使用索引,单查 attr_value 将无法利用该联合索引.

那么把区分度不高(唯一性不高)的字段和区分度高的字段(唯一性高)的字段一起做联合索引呢?

看情况,举个例子,如果仅仅是男女,数据55开的,或者是只有1,2,3三种状态的且相对平均分布的,这种情况下索引是没用的(用不到的)

如果可以根据筛选条件过滤出来一个小的结果集,当然可以建索引

比如表中状态位有1,2,3,4,5,6,7,8,9等等,3,4,5,6,7,8,9占据了大部分数据,1,2只有少部分数据,当然可以在这个字段上建索引

对于3,4,5,6,7,8,9的查询可能不适用与索引查询,但是对于1,2就适合索引查找,那么此时建立个索引页无可厚非。

这种情况,应该和其他的查询条件用到的字段,建立联合索引,而不是建立单列索引;

比如这样的查询比较多:

select * from t where crdate > '2017-01-01' and sexid = '男'

可以建立如下索引:

create  index ix_t on t(crdate, sexid)

MySql 索引数据结构,千万级大表,关于性别及年龄字段是否需要加索引? 阅读详情

相关推荐

Unity2019编译器下使用Ump无错误,打包exe不播放 或 将exe文件在其他电脑下运行不播放

一、unity编译器下使用UMP可以播放视频,打包后查看debug 出现错误 UnloadTime: 1.070900 ms Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl Fallback handler could not load library F:/PCTest/AccessControlSysteam/jfmx_Data/Mono/libdl.dll Fa.

qq_42345116的博客 4700

MySQL如何创建索引?在哪些情况下应该创建索引?性别这样的字段适合建索引吗?为什么?

在MySQL中,可以使用语句来创建索引。其中,index_name是索引的名称,table_name是要创建索引的表名,是要在索引中包含的列。

学亮编程手记 1367

freeswitch之呼叫中心acd模块开发

一、定义: ACD(Automatic Call Distributor) 自动呼叫分配,也叫智能选择座席。它是呼叫中心整个前台接入系统逻辑功能的描述:把接入的呼叫转接到正确的座席员桌前。ACD是现代呼叫中心有别于一般的热线电话系统和自动应答系统的重要标志,其性能的优劣直接影响到呼叫中心的效率和顾客的满意度。 二、ACD包含的功能点: 1 、程控交换功能 ACD在本质上也是交换机的一种类型,必须具有程控交换最基本的话务交换功能。 2 、排队功能 ACD必须具有话务排队的功能,所谓排队是指在内线都

飞鸟的博客 1870

mysql男女字段应该建立索引吗_为什么说性别字段不适合做索引?

关于区分度不高的字段,比如性别,比如状态字段,是否应该建索引?只有2种取值的字段,建了索引数据库也不一定会用,只会白白增加索引维护的额外开销,因为索引也是需要存储的,所以插入和更新的写入操作,同时需要插入和更新你这个字段的索引的.所以说,唯一性太差的字段不需要创建索引,即便用于where条件.相关,建立联合索引时,也要考虑把重复率低而又用得多的列放在前面.比如: key (attr_id, att...

weixin_34836906的博客 6222

中国传媒大学计算机考研初复试经验贴

中传的计算机专业考研的话主要分为两大学院:计网学院和国重,大部分专业在计网学院。

DoKiDoK的博客 1559

Win11右下角不显示图标怎么办?Win11右下角不显示图标的解决方法

所以有不少符合资格的小伙伴都下载进行体验了,但是有的小伙伴在升级完系统之后发现桌面右下角不显示任何图标,那么遇到这种情况要怎么办呢?下面就和小编一起来看看有什么解决方法吧。2、接着找到任务栏设置中的“taskbar corner overflow”。3、然后在下方勾选打开想要显示的图标程序就可以了。1、首先右键任务栏,在其中选择“任务栏设置”。目前微软已经正式推出了。

2401_88800025的博客 884

为什么性别字段不适合建索引

大家都知道索引分聚集索引和非聚集索引,性别字段因为可重复肯定只能建立非聚集索引,然而因为非聚集索引叶子节点存储的是索引值和聚集索引值,需要回表。所以在性别这种辨别度较低的字段上建立索引,索引树可能只有两个节点,跟线性查找没有太大区别,并且因为回表的存在导致在聚集索引树和非聚集索引树来回切换反而导致查询时间更慢。并且维护该索引还要一定的开销。另外,数据库优化器最终很大概率也不会选择走这个索引。综上,在辨别度较低的字段上建立索引得不偿失。 ...

weixin_42144277的博客 6171

092、多sensor帧同步在环视系统中的实现——基于瑞芯微RK3588的PPS同步与曝光同步方案

摘要: 本文探讨了瑞芯微RK3588平台在360环视系统中实现多摄像头帧同步的技术方案。针对环视拼接常见的动态场景错位问题,提出了PPS同步与曝光同步相结合的解决方案。通过GPIO硬件触发实现四路摄像头同步曝光,配合I2C全局曝光控制,将时间误差控制在0.5ms内。文章详细解析了RK3588设备树配置、内核驱动实现中的关键细节,包括同步信号处理、寄存器原子写入等核心技术点,并分享了量产中遇到的温度漂移、信号完整性等实际问题及解决方法。最终通过硬件整形和电源优化,将同步抖动控制在±5μs以内,有效解决了动态拼

zzfmlxs的博客 33

为什么性别字段不需要索引

在数据库设计中,索引通常用于提高查询效率,但并非所有字段都适合建立索引,尤其是具有低基数特性的字段,如性别字段。

jakelihua 1053

31.华为路由器:PPPOE配置模拟实验及NAT配置

实验环境 pppoe-client上面的接口信息 [AR1]dis ip interface brief *down: administratively down ^down: standby (l): loopback (s): spoofing The number of interface that is UP in Physical is 2 The number of interface that is DOWN in Physical is 1 The number of interface

迷逝 8116

MATLAB与ROS联合仿真——实例程序搭建思路

MATLAB与ROS联合仿真——实例程序搭建思路

慕羽★的博客 5228

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

MySQL 性别字段到底加不加索引,实际上与索引创建规则之一 区分度有关,性别字段假设有100w数据,50w男、50w女,区别度几乎等于 0 , select count(DISTINCT sex)/count(*) from sys_user ,实际上对于性别字段不适合创建索引,是因为select * 操作,还得进行50w次回表操作,根据主键从聚簇索引中找到其他字段 ,这一部分开销从上面的测试来说还是比较大的,所以从性能角度来看 不建议性别字段加索引,加上索引并不是索引失效,而是回表操作使得变慢的。

chengxunzun的博客 1994

使用PyTorch和TextCNN实现英文长文本诗歌文本分类

在这个过程中,我们了解了如何进行文本数据预处理、构建TextCNN模型,并进行训练与评估。首先,我们需要将文本文件加载到内存中,并将每个诗歌作为一个样本。然后,我们需要将每个样本转换为数字表示,这可以通过将词汇表中的每个词语映射到一个唯一的整数来实现。此外,我们还需要将每个样本的长度统一为固定值,以便于模型输入。通过这个示例,我们可以学习如何构建一个简单但有效的文本分类模型,并在具体的应用场景中进行训练和预测。该模型通过使用多个不同尺寸的卷积核来捕捉文本中的不同长度的信息,并通过最大池化操作提取关键特征。

loop_syntax648的博客 254

哪些字段不适合创建索引?

在设计索引时,应根据字段的使用场景来判断是否适合创建索引。频繁更新的字段低基数的字段长文本字段(TEXTBLOB包含大量NULL值的字段长字符串字段具有较多重复值的字段没有查询需求的字段外键字段(InnoDB自动创建索引)对于这些字段,尽量避免创建索引,以免增加存储和维护开销,影响查询性能。

weixin_46072507的博客 1092

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Mysql哪些字段适合建立索引

1 数据库建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引; 3、经常与其他表进行连接的表,在连接字段上应该建立索引; 4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引; 5、索引应该建在选择性高的字段上; 6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引; 7、复合索引的建立需要进行仔细分析;尽量考虑用单字段索引代替: A、正确选择复合索引中的主列字段,一般是选择性较好的字段; B 、复合索引的几个字段是否经常同时以AND

ourLang 2万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

MySQL中,性别列(男,女)为什么不适合建索引?

实验结果显示,在这种场景下全表扫描比使用索引快约33%。这说明对于低区分度列,索引反而可能降低查询性能。

只讲干货,不扯淡! 1086

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

性别字段建立索引问题

性别字段能不能建立索引 之前面试被问到一个问题 什么字段适合建索引,什么字段不适合建索引。 性别字段可以建索引吗? 我回答得不是很好。 性别字段这种重复性很强的字段,不要建立索引。为什么不能呢? 下面建立表测试下。如:我建了个tb_test表,往里面插入了七百多万数据,先给性别建立索引,查询开启 sql运行时间记录。 创建名为tb_index_test  的索引 alter ta...

p571912102的博客 6万+

为什么重复率高的字段不适合作为索引

理论文章会告诉你值重复率高的字段不适合建索引。不要说性别字段只有两个值,网友亲测,一个字段使用拼音首字母做值,共有26种可能,加上索引后,百万加的数据量,使用索引的速度比不使用索引要慢! 一个表可能会涉及两个数据结构(文件),一个是表本身,存放表中的数据,另一个是索引。索引是什么?它就是把一个或几个字段(组合索引)按规律排列起来,再附上该字段所在行数据的物理地址(位于表中)。比如我们有个字段是年...

Gahui~ 6852

为什么用索引,如何创建索引,哪些字段适合创建索引?

的一种数据结构,类似于书本的目录,可以快速定位数据的位置。适合对大段文本进行关键词搜索。

m0_69529796的博客 809

什么样的字段适合加索引?索引失效了解吗?

什么样的字段适合加索引?索引失效了解吗?

qq_67358181的博客 2633

那些字段适不适合建索引

数据库建立索引常用的规则如下: 1、表的主键、外键必须有索引; 2、数据量超过300的表应该有索引;3、经常与其他表进行连接的表,在连接字段上应该建立索引;4、经常出现在Where子句中的字段,特别是大表的字段,应该建立索引;5、索引应该建在选择性高的字段上;6、索引应该建在小字段上,对于大的文本字段甚至超长字段,不要建索引;7、复合索引的建立需要进行仔细分析;尽量考虑用单字段...

M_Jack的博客 4501

MySQL——适合&不适合创建索引的情况

MySQL适合&不适合创建索引的情况

m0_60500421的博客 1520

MySQL索引优化:索引失效以及不适合建立索引的场景

索引失效以及不适合建立索引的场景,本篇文章是在看完尚硅谷宋红康老师的视频后总结的内容,希望可以和大家进行交流学习

PeaK欢迎大家评论留言,一起交流Java技术 4705

mysql 性别加索引_[InnoDB]性别字段为什么不适合加索引

表结构与数据id为主键,id为奇数sex=1,id为偶数sex=0sex=0,50000条数据;sex=1,50000条数据表结构数据示例CREATE TABLE `people` (`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(255) DEFAULT NULL,`sex` tinyint(1) unsigned ...

weixin_36074841的博客 1493
上一篇: python 把mysql表转成dict_使用python dict更新MySQL中的表
下一篇: java转换进制_java中如何将十进制数字转化成二进制?
weixin_39638708
博客等级 码龄9年 75粉丝 164原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值