はじめに
これまで数回にわたって、
それぞれのデータベースの特徴
まず、
データベース | タイプ | 特徴 |
---|---|---|
MySQL, PostgreSQL | RDBMS | データの一貫性、 |
memcached | 揮発性KVS | 非常に高速、 |
TokyoTyrant | 永続性KVS | memcachedの代替、 |
MongoDB | ドキュメント指向型DB | スキーマレス、 |
HBase, Cassandra | 列指向DB | 列指向、 |
この表では言及していませんが、
検証用サーバの準備
では実際のパフォーマンスを比較してみましょう。比較のため、
# memcached
memcached -u nobody -d
# TokyoTyrant
sudo ttserver -pid /var/ttserver/pid -dmn /var/ttserver/bench.tch
# MongoDB
mongod --dbpath ~/tmp/mongodb &
# HBase
sudo /etc/init.d/hadoop-0.20-namenode start
sudo /etc/init.d/hadoop-0.20-jobtracker start
sudo /etc/init.d/hadoop-0.20-datanode start
sudo /etc/init.d/hadoop-0.20-tasktracker start
sudo /etc/init.d/hadoop-hbase-master star
hbase org.apache.hadoop.hbase.rest.Main &
データ書込み時のパフォーマンス
最初に書込みのパフォーマンスを比較してみます
ベンチマークスクリプトを見ればわかりますが、
結果を見るかぎり、
データベース | user | system | total | real |
---|---|---|---|---|
InnoDB | 5. | 0. | 5. | 12. |
InnoDB | 3. | 0. | 3. | 23. |
memcached | 0. | 0. | 0. | 1. |
TokyoTyrant | 0. | 0. | 0. | 1. |
MongoDB | 3. | 0. | 3. | 7. |
HBase | 6. | 0. | 7. | 23. |
データ読込み時のパフォーマンス
次に、
結果を見ると、
タイプ | user | system | total | real |
---|---|---|---|---|
MyISAM | 1. | 0. | 1. | 20. |
InnoDB | 1. | 0. | 1. | 43. |
memcached | 0. | 0. | 0. | 0. |
TokyoTyrant | 0. | 0. | 0. | 0. |
MongoDB | 5. | 0. | 5. | 27. |
HBase | 8. | 0. | 9. | 28. |
まとめ
これまで扱ってきたNoSQLデータベースやRDBMSを、
高速なデータのやりとり、
今後もNoSQLデータベースは注目されていくと思いますが、