MongoDBのinsertはPostgreSQLより12倍速かった
テスト環境
Amazon EC2 m1.largeインスタンスCentOS 6.0
MongoDB 2.0.1
PostgreSQL 8.4.9
両方ともtar.gzからインストールしました。
MongoDB : http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.1.tgz
PostgreSQL: ftp://ftp2.jp.postgresql.org/pub/postgresql/source/v8.4.9/postgresql-8.4.9.tar.gz
テストケース
PHPから、ウェブアプリのログ的なデータを10万件insertします。PostgreSQL
テーブル定義CREATE TABLE actionlog (
id serial,
user_id integer NOT NULL,
actionname character varying(255) NOT NULL,
actiontime timestamp without time zone NOT NULL,
);
テストスクリプト
<?php
$conn = pg_connect("dbname=sample user=hoge");
for ($i = 0; $i < 100000; $i++) {
$sql = "INSERT INTO actionlog (user_id, actionname, actiontime) values($i, 'action_foo_bar',now())";
pg_query($sql);
}
MongoDB
テストスクリプト<?php
$mongo = new Mongo();
$db = $mongo->sample;
$collection = $db->actionlog;
for($i=0;$i<100000;$i++) {
$doc = array(
'user_id' => $i,
'actionname' => 'action_foo_bar' ,
'actiontime' => time(),
);
$collection->insert($doc);
}
測定結果
上記スクリプトをそれぞれ3回ずつ実行して平均値をとりました。MongoDB 3.15秒
PostgreSQL 37.16秒
実に、MongoDBの方がPostgreSQLより12倍速いという結果になりました。
素晴らしいですね!