更新时间:2022-05-21 20:00:51
我们先了解下InnoDB引擎表的一些关键特征:
综上总结,如果InnoDB表的数据写入顺序能和B+树索引的叶子节点顺序一致的话,这时候存取效率是最高的,也就是下面这几种情况的存取效率最高:
实际情况是如何呢?经过简单TPCC基准测试,修改为使用自增列作为主键与原始表结构分别进行TPCC测试,前者的TpmC结果比后者高9%倍,足见使用自增列做InnoDB表主键的明显好处,其他更多不同场景下使用自增列的性能提升可以自行对比测试下。
附图:
1、B+树典型结构
2、InnoDB主键逻辑结构
延伸阅读:
1、TPCC-MySQL使用手册, http://imysql.com/2012/08/04/tpcc-for-mysql-manual.html
2、B+Tree index structures in InnoDB, http://blog.jcole.us/2013/01/10/btree-index-structures-in-innodb/
3、B+Tree Indexes and InnoDB – Percona, http://www.percona.com/files/presentations/percona-live/london-2011/PLUK2011-b-tree-indexes-and-innodb.pdf
4、MySQL官方手册: Clustered and Secondary Indexes,
https://dev.mysql.com/doc/refman/5.6/en/innodb-index-types.html