如何在使用LOAD data INFILE导入大数据文件时保持MYSQL性能?
我正在使用一个大型数据库(一些表超过500000000行)。每天应使用LOAD DATA INFILE替换300-1000万行,每次导入约为100万行(使用CRON,每天导入3-10次)。 问题是,在进行如此大的文件导入时,MySQL占用了80%的CPU,所有来自网站的常见查询变得非常缓慢,或者网站性能下降。 该网站在亚马逊的EC2 Windows 2008服务器下运行。 有人知道如何在一个EC2实例中解决这个问题吗(不拆分数据库)如何在使用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实例中解决这个问题吗(不拆分数据库) 谢谢。一个快速而肮脏的黑客。。。如何将源文件拆分为较小的加载,
谢谢。一个快速而肮脏的黑客。。。如何将源文件拆分为较小的加载,然后作为DB加载操作进行cron'ned,每个加载之间有5分钟的间隔?一次管理1000万条记录将耗尽许多服务器和数据库资源,从而导致崩溃。如果你有一个拥有大量内存的大型服务器,仅使用50-100K的负载可能不会太糟糕。分发似乎是一条出路(facebook就是这样做的) 不确定你不这样做的理由是什么,预算限制 其他可能的办法
- 放弃使用windows-
- 设置mysql复制
- 在通过cron导入的过程中,防止所有查询命中主机,反之亦然。导入完成后(类似于设置两个标志文件,如果主标志存在,则使用从属,如果从属标志文件存在,则使用主标志文件,两者均不存在,则可以查询两者)
- 考虑一下
- 丢弃所有索引(承担后果)