我有一个 MySQL 数据表,其中包含大约 50 亿行。我们需要通过读取来对这些数据进行计算,计算出的数据(原始数据的标准化形式)需要写入另一个 InnoDB 表。
我们目前的设置是一个虚拟云,其中有一台机器和数据库,因此机器与数据库的连接非常快。
对数据进行的计算(以及读取)非常快,整个过程的瓶颈在于将标准化数据插入 InnoDB 表(标准化数据包含一些指标,虽然不长,但减慢插入)。
不幸的是,我们无法修改某些系统变量,例如 innodb_log_file_size(我们使用的是 Amazon AWS),这将有助于提高插入性能。
将所有这些数据推送到 MySQL 上最好的方法是什么?由于计算过程很简单,我几乎可以编写一个 Python 脚本来获取标准化数据并以任何格式输出。在计算发生时动态插入这些数据非常缓慢,并且随着时间的推移变得更慢。
我想问题是,将批量数据插入 InnoDB 表的最佳过程是什么(就输入格式和实际导入而言)?