国美金融贷款聚集主键索引值,国美金融贷款记录根节点
国美金融贷款聚集索引树的键值(key)是主键索引值(i=10),聚集索引节点值(value)是其他非聚集索引列(c1,c2,c3)以及隐含列(DB_TRX_ID、DB_ROLL_PTR)。
优化建议1:国美金融贷款尽量不要存储大对象数据,使得每个叶子节点都能存储更多数据,降低碎片率,提高buffer pool利用率。此外也能尽量避免发生overflow。
3.2 特点2:国美金融贷款聚集索引非叶子节点存储指向子节点的指针。
对上面的测试表继续写入新数据,直到国美金融贷款聚集索引树从一层分裂成两层。
国美金融贷款根据 InnoDB表聚集索引层高什么时候发生变化 里的计算方式,推算出来预计一个叶子节点最多可存储111条记录,因此在插入第112条记录时,就会从一层高度分裂成两层高度。经过实测,也的确是如此。
[root@yejr.me] [innodb]>select count(*) from t1;
[root@yejr.me]# innblock innodb/t1.ibd scan 16
===INDEX_ID:238
level1 total block is (1)
block_no: 3,level: 1|*|
level0 total block is (2)
block_no: 5,level: 0|*|block_no: 6,level: 0|*|
此时可以看到国美金融贷款根节点依旧是pageno=3,而叶子节点变成了[5, 6]两个page。由此可知,国美金融贷款根节点上应该只有两条物理记录,存储着分别指向pageno=[5, 6]这两个page的指针。
我们解析下3号page,看看它的具体结构:
[root@yejr.me]# innodb_space -s ibdata1 -T innodb/t1 -p 3 page-dump
records:
{:format=>:compact,
:offset=>125,
:header=>
{:next=>138,
:type=>:node_pointer,
:heap_number=>2,
:n_owned=>0,
:min_rec=>true, #第一条记录是min_key
:deleted=>false,
:nulls=>[],
:lengths=>{},
:externs=>[],
:length=>5},
:next=>138,
:type=>:clustered,
#第一条记录,只存储key值
:key=>[{:name=>"id", :type=>"INT UNSIGNED", :value=>1}],
:row=>[],
:sys=>[],
:child_page_number=>5, #value值是指向的叶子节点pageno=5
:length=>8} #整条记录消耗8字节,除去key值4字节外,指针也需要4字节
{:format=>:compact,
:offset=>138,
:header=>
{:next=>112,
:type=>:node_pointer,
:heap_number=>3,
:n_owned=>0,
:min_rec=>false,
:deleted=>false,
:nulls=>[],
:lengths=>{},
:externs=>[],
:length=>5},
:next=>112,
:type=>:clustered,
#第二条记录,只存储key值
:key=>[{:name=>"id", :type=>"INT UNSIGNED", :value=>56}],
:row=>[],
:sys=>[],
:child_page_number=>6, #value值是指向的叶子节点pageno=6
:length=>8}
优化建议2: 国美金融贷款索引列数据长度越小越好,这样索引树存储效率越高,在非叶子节点能存储越多数据,延缓索引树层高分裂的速度,平均搜索效率更高。
国美金融贷款聚集主键索引值,国美金融贷款记录根节点相关推荐
- MySQL聚簇索引:叶子保存主键或unique字段+data 非聚簇保存索引字段
非聚簇索引:索引与真实数据文件不在一个文件中 myisam的一个数据表table中,它是有table.frm.table.myd以及table.myi组成. table.myd记录了数据,table. ...
- Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)
了解了主键索引的底层原理,主键索引其实就是根据主键字段建立相关的数据结构(B+树),此后在使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点.除了主键索引外,普通索引和唯一键索引也是如此, ...
- js 数组内删除某个对象(或确定该对象索引值)
开发的过程中,我们会经常下面的业务需求,比如,我们有一个数组,数组内包含是对象,我想删除数组内的某个对象,那么我肯定会去选择splice的方法,那么我就需要知道我想要删除的对象的索引值,那么本文就是记 ...
- 主码索引、聚集索引、非主码索引(辅助索引)、唯一索引、外键索引、复合索引、非主码索引、聚集主码(聚集索引)、单列索引、多列索引、普通索引等...
强烈建议看了第一个参考文献再来看这个篇博文,因为此处不准备讲底层数据结构的实现. 索引:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构.其 ...
- mysql优化器怎么选择索引,为什么MySQL查询优化器会选择聚集主索引上的二级索引?...
为什么Mysql优化器在执行'select * from lookup'而没有order by子句时选择二级索引. 它只是一个侥幸,或者这是一个幕后优化,假设你添加了一个二级索引,它比主键更重要. 我 ...
- Python字典的操作小技巧——索引、增添、删除、修改与取键和值
字典是非常常用的一种数据结构,它与json格式的数据非常相似,核心就是以键值对的形式存储数据,关于Python中的字典做如下四点说明: 构造字典对象需要使用大括号表示,即{},每一个字典元素都是以键值 ...
- 主键需要键索引吗_MySQL 索引的知识点都在这里了,建议收藏!
Java技术栈 www.javastack.cn 关注优质文章 数据库索引,相信大家都不陌生吧. 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息.作为辅助查 ...
- 使用复合索引代替单键索引,来避免单键有null值的情况
查看原表: SQL> select count(*) from t1;COUNT(*) ----------3229088SQL> select count(*) from t1 wher ...
- jpa 每次启动都要创建外键索引_索引(五)索引数据结构
数据库索引,是数据库管理系统中一个排序的数据结构,主要有B树索引.Hash索引两种 一:B树索引 先来看下B树索引结构实列 关于图的说明如下: 左边表示的是某个数据库的数据表,一共有两列七条记录,最左 ...
最新文章
- android 图片在哪里设置时间,android 按时间显示图片
- CentOS配置SSH单向无密码访问
- 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载
- mysql 索引查询_mysql索引的建立和查询语句优化
- springboot 关于 Class path contains multiple SLF4J bindings.警告的解决
- 2021年四川高考成绩在哪里查询,2021年四川高考成绩查询系统入口,四川高考成绩怎么近查询系统...
- DBA警世录:备份重于一切
- 9.运输层(3)---TCP
- GOF设计模式——工厂模式
- STM32之红外接收
- 拥抱“互联网+”,开拓渠道发展新业态
- 服务器备案新增网站,已经备案服务器 增加新域名
- R、冗余分析(RDA)、ggplot2、置信椭圆
- 2012计算机科学排名,USnews2012美国大学排名计算机科学专业排名
- 华为云与阿里云那个好
- Tomcat提示指定的服务未安装Unable to open the service 'tomcat'
- 阿里P8共勉之-送书帖-听说最近你读过不少书?
- [Elasticsearch]cat API的使用
- java httpget 传参数_Java 发送http请求(get、post)
- 直流无刷电机霍尔传感器2种安装方式
热门文章
- 开发h5项目通过ip连接到手机上访问
- linux 的pwd文件被删,恢复被删除的文件-linux篇
- 自研芯片重构云上算力革新,满足用户所有负载的需求!
- 【海外APP】Bigo Live是体验生活的新方式
- 某游戏盒登录协议分析
- 怎么测量芯片IO的好坏
- TextDragon: An End-to-End Framework for Arbitrary Shaped Text Spotting阅读笔记
- java生成数字证书_java生成数字证书方法
- 四年后看微软第二代超融合系统:Azure Stack HCI
- linux环境下c语言调用lapack,linux系统下C语言调用lapack ,blas库