我的 aurora 集群有一个奇怪的问题。 该集群有两个实例,具有 4 个内核和 32GB 规格、写入器和读取器实例。
目前它以 0.5KB 的行大小将大约 2000 INSERT/秒推到一个大约 100GB 大小的表中,并具有 100GB 二级索引,PK 是 bigint 自动增量。 当前行数约为 10 亿+
随着表大小的增长,我注意到有大量的 innodb 缓冲池 IO,我不明白为什么会发生这种情况? 我知道由于表索引大小,它无法将所有内容都放入内存中,但仍然有大量的磁盘 IO 命中,从逻辑上讲这是不可能的?
当我所做的只是插入该表时,是否有任何理由“读取”到缓冲池内存/磁盘中?
所以我确实执行了表交换(将大表重命名为 _old 然后重新创建表),问题消失了,但几天后它又回来了。
此外,目前使用 golang 进行插入,但由于某种原因,它总是附加此“START TRANSACTION”和“COMMIT”语句,即使它只是一个插入语句,但不确定这是否会影响任何内容