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

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

120次阅读
没有评论

共计 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字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 热久久国产精品 | 成人福利网 | 欧美福利精品福利视频在线观看 | 国产午夜视频在线 | 亚洲欧洲国产综合 | 日本韩国欧美 | 国产妞干网 | 亚洲欧美日韩一区超高清 | 男女爽爽无遮挡午夜视频在线观看 | 欧美老妇xx | 国产精品爽爽久久久久久 | 欧美va视频 | 最近2019免费中文第一页 | 少妇精品久久久一区二区三区 | 欧美成年黄网站色视频 | 日本一区毛片免费观看 | 精品国产免费人成高清 | 中文字幕一区二区在线视频 | 久久精品国产亚洲av不卡 | 久久婷婷大香萑太香蕉av人 | 久久精品欧美一区二区 | 成年视频xxxxx在线入口 | 特黄色大片 | 久久中文字幕无码中文字幕有码 | 天天干天天干天天操 | 在线午夜 | 成人亚洲综合 | 女性一级全黄生活片在线播放 | 亚洲精品无码不卡在线播he | 人妻忍着娇喘被中进中出视频 | 国产午夜毛片v一区二区三区 | 亚洲国产丝袜精品一区杨幂 | 国产熟妇疯狂4p交在线播放 | 黑色丝袜美女自安慰视频 | 日韩中文字幕视频 | 日本三级黄色片网站 | 欧美一级成人毛片影院 | 日本国内一区二区三区 | 四虎国产精品免费五月天 | 午夜视频国语 | 伦理片高清在线观看网站 |