理论文章会告诉你值重复率高的字段不适合建索引。不要说性别字段只有两个值,网友亲测,一个字段使用拼音首字母做值,共有26种可能,加上索引后,百万加的数据量,使用索引的速度比不使用索引要慢!

一个表可能会涉及两个数据结构(文件),一个是表本身,存放表中的数据,另一个是索引。索引是什么?它就是把一个或几个字段(组合索引)按规律排列起来,再附上该字段所在行数据的物理地址(位于表中)。比如我们有个字段是年龄,如果要选取某个年龄段的所有行,那么一般情况下可能需要进行一次全表扫描。但如果以这个年龄段建个索引,那么索引中会按年龄值建一个排列,这样在索引中就能迅速定位,不需要进行全表扫描。

为什么性别不适合建索引呢?因为你访问索引需要付出额外的IO开销,你从索引中拿到的只是地址,要想真正访问到数据还是要对表进行一次IO。假如你要从表的100万行数据中取几个数据,那么利用索引迅速定位,访问索引的这IO开销就非常值了。但如果你是从100万行数据中取50万行数据,就比如性别字段,那你相对需要访问50万次索引,再访问50万次表,加起来的开销并不会比直接对表进行一次完整扫描小。

性别为什么不适合建立索引-值重复率高的字段不适合建索引相关推荐

  1. 为什么重复值高的字段不能建索引(比如性别字段等)

    结论(以innodb为例) a.非聚簇索引存储了对主键的引用,如果select字段不在非聚簇索引内,就需要跳到主键索引(上图中从右边的索引树跳到左边的索引树),再获取select字段值 b.如果非聚簇 ...

  2. mysql 重复率高字段 索引,为什么重复值高的字段不能建索引(+聚集索引和非聚集索引)...

    ?一.原因: -?非聚簇索引存储了对主键的引用,如果?select?字段不在非聚簇索引内,就需要跳到主键索引. -?如果非聚簇索引值重复率高,那么查询时就会大量出现上图中从右边跳到左边的情况,导致整个 ...

  3. 适合建索引?不适合建索引?分析

    数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特 ...

  4. mysql date建索引有用吗_Mysql索引分析:适合建索引?不适合建索引?【转】

    数据库建立索引常用的规则如下: 1.表的主键.外键必须有索引: 2.数据量超过300的表应该有索引: 3.经常与其他表进行连接的表,在连接字段上应该建立索引: 4.经常出现在Where子句中的字段,特 ...

  5. seo文章重复率高不利于收录

    内容是一个网站灵魂, 有句话说的很好:一切以您的内容开始和结束.内容为王,不是吹出来的,而是由千千万万的站长朋友所验证过的.一个网站如果没有内容,就没有可读性而言了,想要让更多的人对你网站有好感,就要 ...

  6. 2篇word文档比较重复率_本科论文写作重复率高的原因,毕业论文降重技巧总结!...

    论文重复率的问题,是大学高等院校都比较关心的一点,大学生在论文写完以后,都要经过知网论文检测,在查看重复报告的时候,无法直视,因为论文重复率提高啦.经过几次论文降重修改还是没法降低论文重复率.那么论文 ...

  7. 计算机SCI论文重复率高,有什么降重技巧? - 易智编译EaseEditing

    不管是计算机还是其他的专业,论文重复率高,就要进行论文降重. 有一些简单的降重的技巧可以分享一下: "中英中"互换法 用翻译软件先翻译成英文, 再翻译回中文,之后手工修改润色一下, ...

  8. mysql 重复率高字段 索引_MySQL性能优化(二)索引优化

    一.选择合适的列建立索引 1.在where从句,group by从句,order by从句,on从句中出现的列(select) 2.索引字段越小越好(表每页数据才会更多,IO效率会更高) 3.离散度大 ...

  9. mysql 排序字段 添加索引吗_mysql需要在哪些字段上加索引?

    mysql需要加索引的字段:1.经常出现在Where子句中的字段,特别是大表的字段,应该建立索引:2.经常与其他表进行连接的表,在连接字段上应该建立索引:3.分组字段或者排序字段应该创建索引:4.选择 ...

  10. mysql join 索引 无效_ORACLE MYSQL中join 字段类型不同索引失效的情况-阿里云开发者社区...

    ORACLE MYSQL中join 字段类型不同索引失效的情况 重庆八怪 2016-12-29 780浏览量 简介: 关于JOIN使用不同类型的字段类型,数据库可能进行隐士转换,MYSQL ORACL ...

最新文章

  1. ionic3实战之—Radio传值
  2. 《源码分析转载收藏向—数据库内核月报》
  3. ElasticSearch 索引基本操作_04
  4. 不懂别瞎搞!Redis 性能优化的 13 条军规!
  5. 实践录丨如何在鲲鹏服务器OpenEuler操作系统中快速部署OpenGauss数据库
  6. 软件架构(7)---软件架构设计-五视图方法论
  7. linux基本命令之chattr与lsattr
  8. Mac上终端的命令总结
  9. (转)根据两点经纬度计算距离
  10. 用pycharm编写程序调用ADS仿真历程
  11. 反射、注解、字节码、类加载机制
  12. 基于变量推理的知识图路径推理分析
  13. vue项目IE浏览器中打不开,为空白页
  14. MyBatis整合Spring的实现(16)
  15. html中的图片路径ie8,IE8下文件上传时获取文件的真实路径
  16. 如何选择靠谱的插画培训课程
  17. 【漏洞学习——SQL】华图教育某分站SQL注入漏洞
  18. 回溯算法经典问题-迷宫问题
  19. Android Instant App
  20. 解决问题:import torch失败和torch.cuda.is_available()返回false

热门文章

  1. 用图形化文件对比工具kdiff3解决git rebase冲突
  2. 企业微信网页应用开发 - 权限验证
  3. STA静态时序分析/Formality形式化验证
  4. 银行业的python项目_python练习项目(银行)——开户和查询
  5. STM单片机命名规则
  6. latex表格实现换行
  7. 【参赛作品101】充实openGauss每日一练21天学习完成大总结
  8. C语言平面向量加法运算,2.2.1 向量加法运算及其几何意义优质课一等奖
  9. Linux线程优先级
  10. week15-作业题--字符串(hash、字典树、KMP)