1

データベースにバッチ挿入し、完了した挿入ごとにコンソールログを作成するノードプログラムを作成しました。

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 が 1 つの挿入を完了するまでに、私のローカル マシンは 24 の挿入を完了しています。RDS をスモール インスタンスにアップグレードしようとしましたが、違いはありません。

私の質問は、この場合、なぜ amazon rds が遅いのかということです。これに対する解決策はありますか?

4

1 に答える 1

2

問題はマイクロインスタンスのパフォーマンスに関連している可能性があると思います。いくつかのテストの後、マイクロインスタンスから完全に離れ、小さなインスタンスに切り替えました。一方で、小さなインスタンスでもRDSの速度に問題はありません。

EC2マイクロインスタンスがどのように機能し、どこで使用する必要があるかをご覧ください:http: //docs.aws.amazon.com/AWSEC2/latest/UserGuide/concepts_micro_instances.html

私があなたのテストケースをどのように理解しているかから、あなたのセットアップはほとんど2番目の図のように見えます、そしてこれはマイクロインスタンスには適していないはずです。小さなインスタンスを使用して、そこで結果を比較してみてください。ローカルマシンよりも遅い場合でも、同等の結果が得られます。

于 2013-01-15T08:59:36.457 に答える