魔法使いの卵

WEBエンジニアの卵の成長記録

Webエンジニアの教科書読んでみたメモ2(NoSQL)

リレーショナルデータベースの得意なこと

  • データの一貫性が保証できる(トランザクション)
  • 正規化を前提としているため、更新時のコストが小さい
  • JOINや複雑な検索条件での検査が可能
  • 枯れた技術であり、実績やノウハウがたくさんある

リレーショナルデータベースの不得意なこと

  • とにかく単純に、早く結果を返す
  • 大量のデータの書き込みを処理する
  • 更新の発生するテーブルに対するインデックス作成やスキーマ変更
  • カラムを決めにくいケースでの利用

NoSQLの強みは?

  • リレーショナルデータベースの不得意なところが得意

NoSQLを使う上で注意しないといけないところは?

  • リレーショナルデータベースとの住み分けをきっちり行う
  • お互いがお互いの得意分野以外のことをやろうとすると本末転倒
  • SQLのような統一された言語があるわけではないので学習コストがかかる

ところでNoSQLってどういう意味?

  • SQLなんてもう必要ないという意味ではない
  • NO!SQLではなくNot only SQL
  • RDBの不得意なところはそこが得意なデータストアを使おうという考え方

実際にはどんなNoSQLがあるの?

  • Redis

    • 永続化の仕組みを備えている
    • さまざまな形式のデータを扱える
    • アトミックに処理できる
    • ある一連の処理を一度のコマンドで処理することができる
  • MongoDb

    • 高いパフォーマンスをもっている
    • ドキュメント志向データベース
    • スキーマーを固定しなくてもよい
    • 検索も柔軟に行える

読んでいる本

Webエンジニアの教科書