Amazon RDS批量插入比本地数据库慢?

时间:2013-01-14 07:39:27

标签: amazon-web-services amazon-rds

我编写了一个节点程序,批量插入数据库并为每个完成的插入执行控制台日志。

function insert(){
    var sql = "insert into todo (user, content) values (xx, xx);" +
              "insert into todo (user, content) values (xx, xx);" +
              "insert into todo (user, content) values (xx, xx);" +       
    (.... 4000 lines of insert)

    db.insert(sql,function success(){
        console.log('done');
    });
}

for(i=0;i<10000;i++){
    insert();
}

我有2个设置:

1) Local machine to local DB. 

2) Amazon EC2 Micro Instance to Amazon RDS Micro Instance from same region

*Both my.cnf leave to default with only max_allowed_packet=500m set.

结果是在RDS完成一次插入时,我的本地机器完成了24次插入。我试图将我的RDS升级到小实例,它没有什么不同。

我的问题是为什么亚马逊在这种情况下会变慢。对此有何解决方案?

1 个答案:

答案 0 :(得分:2)

我认为问题可能与微实例性能有关。经过一些测试,我们完全远离微实例并切换到小实例。另一方面,即使是小型实例,我也没有发现任何有关RDS速度的问题。

了解EC2微实例如何工作以及应该在何处使用它们: http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html

从我对你的测试用例的理解,你的设置大多看起来像第二个数字,这应该不适合微实例。尝试使用一个小实例并在那里比较结果。即使它仍然比本地机器慢,你也会得到可比较的结果。