データストレージ方式評価標準RDBMS or KV

1687 ワード

  :zhanhailiang   :2014-12-11

本稿では、一般的なデータ・ストレージ・スキームと対応するオプションの評価基準について説明します.
Guideline:        ,         。

1.データ記憶方式
SQL:
MySQL 5.5/5.6/MariaDB(  Dev         );
Oracle|MS SQL    ;

NoSQL:
Memcached 1.4.21;
Redis 2.8;
MongoDB 2.6.6;
Hbase 0.96/0.98;

2.評価基準
RDBMS:(MySQL):
データの永続化ストレージが要求される.ユーザーがデータをコミットすると失われません.
事務保証を要求する.
応用が複雑で、データ構造が複雑で、データの一致性の要求が高い.
分散実装では複雑度が高く、ライブラリのテーブル化のコストが大きい.
厳格な事務保証が必要なOLTクラスシステムとMISクラスシステムに適している.
典型的なシーン:
       ,
       (  ERP,  ,  ,  ,  ,VIS );
        (    ,  ,  ,   ,  );

KV(Memcache/Redis):
データ構造が簡単です.単純なKeyに従ってクエリーとupdateレコードを作成するだけです.
データは永続化ストレージ(persistent on disk)を必要とせず、secondary dataである.一般的にはユーザーが直接書き込むわけではありません.(例えばバックエンドjobによって生成され、アプリケーションによってデュアルライトを実現することができる)transactionトランザクションのサポートは必要ありません.
高いQPS/TPS(for example,10 k+query/transaction per second)があるかもしれません.
非常に高い応答速度要求(<1 ms typically)があり、redisを例にとると、同機械室の操作は一般的に数十マイクロ秒レベルである.
典型的なシーン:
     ;
  cache (     ,      ,       );

Analytics Platform:
Hadoop:ETL;    ;
GP:BI  ;    ;
Hbase:    ;OLAP  ;
DocDB:      ,        ,      ,             。     、   ;

3.パフォーマンスの最適化
既存のシステムがパフォーマンスのボトルネックに遭遇した場合、最適化の順序は次のとおりです.
容量評価パフォーマンス最適化(システム最適化、コード論理最適化、SQL最適化)ハードウェアのアップグレード(ローエンドハードウェアからハイエンドハードウェア、ローエンドストレージからハイエンドストレージ)垂直分割(データベースを異なるモジュールで分割)水平分割(あるモジュールに対して、システムの中で二度と走れない場合は、そのモジュールをプライマリキーまたは他の論理に従って分割する必要がある)ふろく
githubの使用を開始します.com issuesツールはブログを書いて、とても爽やかです!対応github.comリンク:#4