首页 文章

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

提问于
浏览
2

我正在使用大型数据库(一些表500000000行) . 每天应使用LOAD DATA INFILE替换3-10百万行,每次导入大约100万行(使用CRON每天3-10次) . 问题是,在进行如此大的文件导入时,MySQL会占用80%的CPU,并且所有来自网站的常见查询变得非常慢或网站性能下降 . 站点在Amazon的EC2 Windows 2008服务器下运行 . 有谁知道如何在一个EC2实例中解决这个问题(没有拆分数据库)谢谢 .

2 回答

  • 1

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

  • 1

    发行似乎是要走的路(这就是facebook做事的方式)

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

    其他可能的方法

    • discard use of windows - limitation of windows

    • 设置mysql复制
      在通过cron导入期间

    • ,防止所有查询命中为master,而vs . 一旦导入完成(类似设置两个标志文件,如果存在master标志,使用slave,如果slave标志文件存在,使用master,两者都不存在,则两者都可以查询)

    • 考虑partition

    • 丢弃所有索引(承担后果)

    很大程度上取决于您的数据库使用情况,如果不是关键任务,请执行非常合适的离线导入

相关问题