如何在使用LOAD data INFILE导入大数据文件时保持MYSQL性能?

如何在使用LOAD data INFILE导入大数据文件时保持MYSQL性能?,mysql,amazon-ec2,import,load-data-infile,large-data,Mysql,Amazon Ec2,Import,Load Data Infile,Large Data,我正在使用一个大型数据库(一些表超过500000000行)。每天应使用LOAD DATA INFILE替换300-1000万行,每次导入约为100万行(使用CRON,每天导入3-10次)。 问题是,在进行如此大的文件导入时,MySQL占用了80%的CPU,所有来自网站的常见查询变得非常缓慢,或者网站性能下降。 该网站在亚马逊的EC2 Windows 2008服务器下运行。 有人知道如何在一个EC2实例中解决这个问题吗(不拆分数据库) 谢谢。一个快速而肮脏的黑客。。。如何将源文件拆分为较小的加载,

我正在使用一个大型数据库(一些表超过500000000行)。每天应使用LOAD DATA INFILE替换300-1000万行,每次导入约为100万行(使用CRON,每天导入3-10次)。 问题是,在进行如此大的文件导入时,MySQL占用了80%的CPU,所有来自网站的常见查询变得非常缓慢,或者网站性能下降。 该网站在亚马逊的EC2 Windows 2008服务器下运行。 有人知道如何在一个EC2实例中解决这个问题吗(不拆分数据库)
谢谢。

一个快速而肮脏的黑客。。。如何将源文件拆分为较小的加载,然后作为DB加载操作进行cron'ned,每个加载之间有5分钟的间隔?一次管理1000万条记录将耗尽许多服务器和数据库资源,从而导致崩溃。如果你有一个拥有大量内存的大型服务器,仅使用50-100K的负载可能不会太糟糕。

分发似乎是一条出路(facebook就是这样做的)

不确定你不这样做的理由是什么,预算限制

其他可能的办法

  • 放弃使用windows-
  • 设置mysql复制
  • 在通过cron导入的过程中,防止所有查询命中主机,反之亦然。导入完成后(类似于设置两个标志文件,如果主标志存在,则使用从属,如果从属标志文件存在,则使用主标志文件,两者均不存在,则可以查询两者)
  • 考虑一下
  • 丢弃所有索引(承担后果)
这在很大程度上取决于您的数据库使用情况,如果不是关键任务,请执行非常适合的脱机导入