国美金融贷款聚集索引树的键值(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: 国美金融贷款索引列数据长度越小越好,这样索引树存储效率越高,在非叶子节点能存储越多数据,延缓索引树层高分裂的速度,平均搜索效率更高。

国美金融贷款聚集主键索引值,国美金融贷款记录根节点相关推荐

  1. MySQL聚簇索引:叶子保存主键或unique字段+data 非聚簇保存索引字段

    非聚簇索引:索引与真实数据文件不在一个文件中 myisam的一个数据表table中,它是有table.frm.table.myd以及table.myi组成. table.myd记录了数据,table. ...

  2. Mysql 索引(三)—— 不同索引的创建方式(主键索引、普通索引、唯一键索引)

    了解了主键索引的底层原理,主键索引其实就是根据主键字段建立相关的数据结构(B+树),此后在使用主键字段作为条件查询时,会直接根据主键查找B+树的叶子结点.除了主键索引外,普通索引和唯一键索引也是如此, ...

  3. js 数组内删除某个对象(或确定该对象索引值)

    开发的过程中,我们会经常下面的业务需求,比如,我们有一个数组,数组内包含是对象,我想删除数组内的某个对象,那么我肯定会去选择splice的方法,那么我就需要知道我想要删除的对象的索引值,那么本文就是记 ...

  4. 主码索引、聚集索引、非主码索引(辅助索引)、唯一索引、外键索引、复合索引、非主码索引、聚集主码(聚集索引)、单列索引、多列索引、普通索引等...

    强烈建议看了第一个参考文献再来看这个篇博文,因为此处不准备讲底层数据结构的实现. 索引:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构.其 ...

  5. mysql优化器怎么选择索引,为什么MySQL查询优化器会选择聚集主索引上的二级索引?...

    为什么Mysql优化器在执行'select * from lookup'而没有order by子句时选择二级索引. 它只是一个侥幸,或者这是一个幕后优化,假设你添加了一个二级索引,它比主键更重要. 我 ...

  6. Python字典的操作小技巧——索引、增添、删除、修改与取键和值

    字典是非常常用的一种数据结构,它与json格式的数据非常相似,核心就是以键值对的形式存储数据,关于Python中的字典做如下四点说明: 构造字典对象需要使用大括号表示,即{},每一个字典元素都是以键值 ...

  7. 主键需要键索引吗_MySQL 索引的知识点都在这里了,建议收藏!

    Java技术栈 www.javastack.cn 关注优质文章 数据库索引,相信大家都不陌生吧. 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息.作为辅助查 ...

  8. 使用复合索引代替单键索引,来避免单键有null值的情况

    查看原表: SQL> select count(*) from t1;COUNT(*) ----------3229088SQL> select count(*) from t1 wher ...

  9. jpa 每次启动都要创建外键索引_索引(五)索引数据结构

    数据库索引,是数据库管理系统中一个排序的数据结构,主要有B树索引.Hash索引两种 一:B树索引 先来看下B树索引结构实列 关于图的说明如下: 左边表示的是某个数据库的数据表,一共有两列七条记录,最左 ...

最新文章

  1. android 图片在哪里设置时间,android 按时间显示图片
  2. CentOS配置SSH单向无密码访问
  3. 5万字长文:Stream和Lambda表达式最佳实践-附PDF下载
  4. mysql 索引查询_mysql索引的建立和查询语句优化
  5. springboot 关于 Class path contains multiple SLF4J bindings.警告的解决
  6. 2021年四川高考成绩在哪里查询,2021年四川高考成绩查询系统入口,四川高考成绩怎么近查询系统...
  7. DBA警世录:备份重于一切
  8. 9.运输层(3)---TCP
  9. GOF设计模式——工厂模式
  10. STM32之红外接收
  11. 拥抱“互联网+”,开拓渠道发展新业态
  12. 服务器备案新增网站,已经备案服务器 增加新域名
  13. R、冗余分析(RDA)、ggplot2、置信椭圆
  14. 2012计算机科学排名,USnews2012美国大学排名计算机科学专业排名
  15. 华为云与阿里云那个好
  16. Tomcat提示指定的服务未安装Unable to open the service 'tomcat'
  17. 阿里P8共勉之-送书帖-听说最近你读过不少书?
  18. [Elasticsearch]cat API的使用
  19. java httpget 传参数_Java 发送http请求(get、post)
  20. 直流无刷电机霍尔传感器2种安装方式

热门文章

  1. 开发h5项目通过ip连接到手机上访问
  2. linux 的pwd文件被删,恢复被删除的文件-linux篇
  3. 自研芯片重构云上算力革新,满足用户所有负载的需求!
  4. 【海外APP】Bigo Live是体验生活的新方式
  5. 某游戏盒登录协议分析
  6. 怎么测量芯片IO的好坏
  7. TextDragon: An End-to-End Framework for Arbitrary Shaped Text Spotting阅读笔记
  8. java生成数字证书_java生成数字证书方法
  9. 四年后看微软第二代超融合系统:Azure Stack HCI
  10. linux环境下c语言调用lapack,linux系统下C语言调用lapack ,blas库