データストレージ方式評価標準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