为什么重复值高的列(比如性别)不能作为索引?
(1)看到一个关于索引的面试题:为什么重复值高的列(比如性别)不能作为索引?
我觉得是因为以这种列作为二级索引的话,那么这颗B+树会以该列的值作为节点的排序标准,如果列值相同就以主键作为排序标准。如果该列重复值低,就可以根据该节点下的列值找到下一层节点。否则若重复值高,难以找到下一层的节点。不知道这么解释对不对?
(2)在二级索引的B+树中,叶子节点存储的是该列值和主键值,非叶子节点存储的是该列值,主键值以及到下一层节点的页号。如果在遍历到非叶子节点时,查询条件中的该列值与该节点记录的列值都相同,那么此时比较的依据是什么呢?主键值吗?如果查询条件中没有加上主键值该怎么办?
(3)在聚簇索引B+树的叶子节点中,每一个节点记录的是同一数据页下的全部记录数吗?还是说是部分记录?
索引
mysql
数据库
赞
收藏 0
回答 1
待解决
相关问题
异常“字段列表”中的未知列“性别”?
2677浏览 • 1回复 待解决
计算索引值时,ListItemGroup作为一个整体占一个索引值,不计算ListItemGroup内部ListItem的索引值
1587浏览 • 1回复 待解决
@Prop 为什么不能提供默认值啊?
1982浏览 • 1回复 待解决
明明有主键索引,为什么mysql索引失效?
3715浏览 • 1回复 待解决
pandas根据多列值的条件替换某列对应的值
2304浏览 • 0回复 待解决
InnoDB为什么需要自适应的Hash索引?
2314浏览 • 1回复 待解决
不能报名公测为什么?
7005浏览 • 1回复 待解决
ListItemGroup内部的ListItem会对List的索引值造成什么影响?
295浏览 • 1回复 待解决
为什么select 主键 from tb 就会自动走索引
2669浏览 • 1回复 待解决
OpenHarmony为什么首选JS作为应用开发语言
17042浏览 • 13回复 待解决
鸿蒙java开发 Canvas为什么不能把PixelMap作为参数带入?那我绘制的图片要怎么获取呢?
3679浏览 • 1回复 待解决
一般大家添加索引时都简单考虑些什么?为什么会需要2个字段的索引?
3491浏览 • 1回复 待解决
为什么选用Ts/ArkTS作为开发语言 ,而不是java?
815浏览 • 1回复 待解决
forEach 的key值为什么只用使用string类型
1853浏览 • 1回复 待解决
为什么文章不能评论,有问题交流
4536浏览 • 1回复 待解决
Harmony手表为什么不能安装apk啊?
3654浏览 • 1回复 待解决
PostgreSQL group by 获取唯一值并添加列
2599浏览 • 2回复 待解决
远程真机有些真机不能使用,为什么?为什么不能使用远程真机的某些真机?
6757浏览 • 2回复 已解决
使用select id为什么查询计划的key是索引而不是primary?
2163浏览 • 2回复 待解决
为什么不能模拟加密门禁卡
6709浏览 • 1回复 待解决
mysql的timestamp类型列如何修改默认值?
2286浏览 • 1回复 待解决
Mysql的索引是什么结构?
2454浏览 • 1回复 待解决
PHP高并发写入数据重复问题有知道的吗?
2296浏览 • 1回复 待解决
HarmonyOS PatternLock是否可自定义索引值?
162浏览 • 1回复 待解决
HarmonyOS使用Navigation作为路由,为什么使用replacePath无法触发动效?
29浏览 • 0回复 待解决
建表的时候设置级联删除啊:
这样删除商品表里的数据时,优惠商品表里的数据就会被级联删除,不需要你自己管理。