NoSQLの特徴
一般に”Not only SQL”と解釈される。SQLを否定するノーSQLの意味ではない。
固定されたスキーマに縛られない。
水平スケーラビリティが確保しやすい事が多いこと、トランザクションを利用できないものが多い。
NoSQL比較表
単純比較している情報が見つからなかったため情報を集めて作成。
(そのため、謝りがあればご指摘いただければ幸いです)
Memcached | MongoDB | Redis | Amazon DynamoDB | |
---|---|---|---|---|
データモデル | Key Value | ドキュメント指向 | Key Value | Key Value |
種別 | 揮発性 | 永続性 | 揮発性&永続性 ※1 | 永続性 |
レプリケーション | なし | 対応 | 対応 | 自動対応 |
シャーディング | なし | 対応 | 対応 | 自動対応 |
マルチコア | 対応 | MongoDB 2系:非対応/3系:対応 | 非対応 ※1 | - |
揮発性&永続性 ※1
ディスクに書き込み,永続化させる機能も持ち合わせている。
非対応 ※1
1スレッドでループ処理を行うので、マルチコアのサーバの場合に全てのCPUリソースを使い切らない。
主な特徴
Memcached
キャッシュストレージとしての用途からGETやSET等のシンプルな操作が可能。
LRU(Least Recently Used)順に古いデータを自動削除する。
ディスクI/Oは一切行わない。
データベースやOSの再起動でデータが消去される。
MongoDB
32bitでは2.5GBの制限がある。
(もろもろ情報を追記予定)
Redis
コマンドで削除するか,timeoutを設定しない限りは削除されない。(古いデータを自動削除されない。)
ノードを追加してデータを再配置し、スケールアウトすることができる
Amazon DynamoDB
テーブル作成後のインデックスの変更が行えない。
トランザクションは無いが、代替で対応している人もいる。
http://www.slideshare.net/itoyusaku/dynamodb