amazon-web-services – 为什么AWS RDS MYSQL INSERT采用READ IOPS?

我有db.r3.2xlarge和4000 PIOPS.我从EC2实例中插入了10亿行.现在有40GB的免费RAM.

目前,在4000个PIOPS中,READ PIOPS占用3000个,而我只获得1000个写入PIOPS.所以,这是一个低写作.

我如何检查哪些是读取PIOPS?以及如何加快速度?

谢谢.

编辑:

将ignore插入dna(hash,time,song_id)值(b%s,b%s,%s)

我正在使用python中的self.cursor.executemany(查询,行)

哈希时间song_id是复合主键.

我正在使用AWS RDS InnoDB.

我有4000 PIOPS.然而,现在它总共停留在2000.我有60MB / s WRITE THROUGHPUT.

最佳答案 如果哈希是您的主键或已编制索引,则不会以主要的my和/或索引顺序插入.

此外,您正在使用INSERT IGNORE,它建议您尝试避免不可避免的重复键错误,因为您插入的内容中存在重复数据.

出于这两个原因,InnoDB必须做很多准备工作才能将磁盘上的表空间中的相应页面加载到内存中,以找到主要和/或下一行需要的任何二级索引中的点,如果行是重复的话可能会浪费精力,并且可能需要页面拆分以便空间可用于将下一个散列随机插入其适当的位置.

如果hash是主键,那么在插入时删除所有其他索引可能对您有利,然后在最后添加它们,从而可以更有效地构建它们.

如果批次足够大并且哈希确实是主键,那么通过散列对插入进行预排序应该会有所帮助.

点赞