我的任务是在MySql数据库中填充一些InnoDB表和一些性能评估的随机数据(目标是每个表500GB)。
我已在这两个表上放置了分区(每个31个,均匀分布)。在每个表中生成大约40 GB的数据后,现在我的插入卡被固定在每秒约150个插入和表格中。我相信我在服务器上的配置(120GB RAM,40核CPU,每个3GHz,SDA磁盘),我应该能够插入更多。
这些表上有很多索引可以减慢速度。
我在以下方面使用Ruby脚本:
使用上述脚本的多个实例也不会增加表中每秒的插入次数。
以下是DB中的关键配置:
bulk_insert_buffer_size : 1G
innodb_buffer_pool_size : 75G
innodb_flush_log_at_trx_commit : 2
innodb_doublewrite : OFF
tx_isolation : READ-UNCOMMITTED
foreign_key_checks : OFF
unique_checks : OFF
请让我知道,我可以做些什么来增加插入,因为我相信MySql可以处理的方式多于此。我已经浏览了其他相关帖子,并根据这些帖子做了以上。
答案 0 :(得分:0)
这取决于限制因素是什么。你说桌子上有很多索引。众所周知,索引会降低插入和更新操作的速度。也许删除索引,插入数据并在之后重新创建索引会更快(不要删除主索引和唯一索引,而只删除常规索引。