我们都知道,mysql的表是以主键为索引列的索引,在理想的情况下,我们希望对表的插入,是按照主键的顺序进行的,这样在建立B+树的叶子节点的双向链表的时候,可以基本都在一个页上就完成了叶子节点连接的操作。 当表的行插入是完全无序的时候,性能是否会存在影响? 在什么情况下会急剧影响性能?
下面是作者在项目组性能测试时的截图:
第一张图,从04月/12日 11点28分开始,update的qps稳定在3000左右,insert的qps稳定在2000左右。
当项目组持续测试,等到第二天再来测试,看到的是下面第二张图。
第二张图,从04月/13日 10点23分开始,update的qps稳定在1100左右,insert 的qps位于1k以下,大约在700-800之间。
观察现象后的总结:上面两个性能图的测试方式跟方法完全一致,唯一的区别是mysql表的数据量增加,当表的数据文件大小涨到大约24G时,系统的吞吐量只有刚开始空表(数据量很少)测试时候的1/3。
[r