在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

InnoDB表为什么一定要用自增列做主键

100次阅读
没有评论

共计 910 个字符,预计需要花费 3 分钟才能阅读完成。

这篇文章主要介绍 InnoDB 表为什么一定要用自增列做主键,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

0、导读

我们先了解下 InnoDB 引擎表的一些关键特征:

InnoDB 引擎表是基于 B + 树的索引组织表(IOT);

每个表都需要有一个聚集索引(clustered index);

所有的行记录都存储在 B + 树的叶子节点(leaf pages of the tree);

基于聚集索引的增、删、改、查的效率相对是最高的;

如果我们定义了主键(PRIMARY KEY),那么 InnoDB 会选择其作为聚集索引;

如果没有显式定义主键,则 InnoDB 会选择第一个不包含有 NULL 值的唯一索引作为主键索引;

如果也没有这样的唯一索引,则 InnoDB 会选择内置 6 字节长的 ROWID 作为隐含的聚集索引(ROWID 随着行记录的写入而主键递增,这个 ROWID 不像 ORACLE 的 ROWID 那样可引用,是隐含的)。

综上总结,如果 InnoDB 表的数据写入顺序能和 B + 树索引的叶子节点顺序一致的话,这时候存取效率是最高的,也就是下面这几种情况的存取效率最高:

使用自增列 (INT/BIGINT 类型) 做主键,这时候写入顺序是自增的,和 B + 数叶子节点分裂顺序一致;

该表不指定自增列做主键,同时也没有可以被选为主键的唯一索引(上面的条件),这时候 InnoDB 会选择内置的 ROWID 作为主键,写入顺序和 ROWID 增长顺序一致;

除此以外,如果一个 InnoDB 表没有显式主键,但有可以被选择为主键的唯一索引,且该唯一索引可能不是递增关系时(例如字符串、UUID、多字段联合唯一索引的情况),该表的存取效率就会特别差。

实际情况是如何呢?经过简单 TPCC 基准测试,修改为使用自增列作为主键与原始表结构分别进行 TPCC 测试,前者的 TpmC 结果比后者高 9% 倍,足见使用自增列做 InnoDB 表主键的明显好处,其他更多不同场景下使用自增列的性能提升可以自行对比测试下。

附图:

1、B+ 树典型结构

2、InnoDB 主键逻辑结构

以上是“InnoDB 表为什么一定要用自增列做主键”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注丸趣 TV 行业资讯频道!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计910字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 性一交一乱一伦 | 亚洲av日韩av无码a一区 | 尤物视频网在线观看 | 杨幂视频 国产在线 | 天天摸天天操天天干 | 国内视频一区 | 中文字幕无码第1页 | a级做爰视频在线观看 | 国产精品沙发午睡系列 | 欧美性猛交xxxx免费视频软件 | a在线观看欧美在线观看 | 国产精品久久久久毛片 | www.尤物在线 | 国产艳福片内射视频播放 | 久久99精品久久久久久久野外 | 综合欧美日韩一区二区三区 | 2019中文字幕在线观看 | 国产精品丝袜高跟鞋 | 国产线视频精品免费观看视频 | 欧美一级片在线视频 | 99精品久久久久久久免费看蜜月 | 欧美日韩国产另类一区二区三区 | 特级毛片ww特级毛片w免费版 | 轻吻也飘然在线 | 鸥美毛片 | 欧美交换国产一区内射 | 色婷五月综激情亚洲综合 | 国产精品亚洲a∨天堂不卡 国产精品亚洲lv粉色 | 精品一区二区三区免费 | 日本不卡不码高清视频 | 大陆免费三片在线观看 | 两个人看的www高清视频 | 亚洲а∨精品天堂在线 | 天天弄天天操 | 日韩欧美一区二区三区永久免费 | 精品一区二区三区高清免费观看 | 国产免费观看久久黄av片 | 中文字幕国产 | 久久久精品国产sm最大网站 | 亚洲欧美日韩国产综合 | 性视频视频免费 |