NoSQLの基礎知識- NoSQL(Non-Relational)
- データベースの分類
- 階層型データベース
- 子は一つの親しか持ってない。
- 効率的な検索が出来る。
- データ重複すると大きな問題になる。
- ネットワーク型データベース
- リレーショナルデータベース
- すべてのデータを行と列で表現される二次元の表形式
- 変更するのは、比較的簡単
- データ構造を理解しなくても使用できる。
- リレーショナルデータベース
- 強み
- 汎用的で非常に高性能
- データの一貫的を保証できる。
- 更新時のコストが小さい。
- 複雑な検索条件での検索が可能
- 実績やノウハウがたくさんある。
- 弱み(苦手なこと)
- 大量のデータの書き込みを処理する
- 更新の発生するデーブルに対するインデックス作成やスキーマ変更
- カラムを固定しづらい
- 早く結果を返す
- NoSQLデータベース
- 基本的にあまり複雑な処理できない
- リレーショナルデータベースの弱みを逆に強みとする。
- データを分散させやすい
- NoSQLを利用するメリット
- データを気軽にキャッシュしたい
- 配列形式のデータを高速に処理したい
- とにかく全部保存しておきたい
- 様々なNoSQL
- KVS(key-valueストア)
- 揮発性(memcached, ...)
- メモリ上にデータを保持(大量なメモリが必要)
- 非常に高速
- データが消える可能性
- 永続性(Tokyo Tyrant, Flare, ROMA, ...)
- 両方の特徴も持っているRedis
- ドキュメント指向データベース(MongoDB, CouchDB,...)
- 列指向データベース(Cassandra, HBase, HyperTable, ...)
- NoSQLは新しい技術なので、運用時のノウハウが少なかったり未知のバグがある可能性がある。メリットが多いが、デメリットもある。
memcached
|
|