研究室‎ > ‎卒業生のみなさまへ‎ > ‎LUU TUAN ANH‎ > ‎読書‎ > ‎

NoSQL

NoSQLの基礎知識

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

memcached


Comments