データベースの分割:分割垂直方向と水平方向の分割6つの原則

 

分割されたデータは、最初の準備作業を行うことです、とだけにして、データを分割するようになった前に実際に、私は分割前に何をすべきかについて話します:

  1.  最初のステップ:分散キャッシュRedisのは、memcachedをので、データベースの読み出し動作を減らします。
  2.  ステップ2:キャッシュを使用した後、データベースへのアクセスが非常に大規模な量が残っている場合は、データベースの読み取りと書き込みの分離の原則を検討してください。
  3.  第三段階:我々は独立した読み取りおよび書き込みキャッシュを使用する場合、圧力は依然としてデータベースを分割するために使用する必要があり、時間の非常に大規模なデータベースです。

分割データベース原理:、ある一定の条件を指し、寸法に応じて、我々は複数のデータベースに格納されたデータベースで同一のデータを格納するのデータベース(ホスト)負荷における上記分散を達成するために、(ホスト)分散しました。

好適垂直分割の最初のステップ

データベースが、各テーブルの対応が異なるサービスに、多くのテーブルで構成され、垂直分割は、サービス種別に応じてテーブルを参照し、別のデータベースに分配上方に、そのような圧力は、データを共有したり、上記異なるライブラリになります。

ビジネストランザクションデータベースの分割、ユーザーデータベース、製品データベース、ストアデータベース:例えば、ミッドエンドデータベース淘宝網は、事業の垂直分割によって開始されました。

縦割り

利点:

事業を分割した後1.明確な分割ルールは明確です。

統合したり、システム間で簡単に拡張する2。

3.データのメンテナンスが簡単です。

短所:

表1に、参加できないビジネスの一部のみインターフェースを介して解決することができ、システムの複雑さを増大させます。

2.各事業は容易改善された性能を有するデータを展開するために、異なる単一のデータベース・パフォーマンスのボトルネックの存在によって制限されます。

3.トランザクション複雑な処理。

ステップ2:分割レベルが続きます

典型的なシーン分割レベルは、サブライブラリーサブテーブルを、よく知られています。

単一ボトルネックが縦割りに遭遇した後、水平分割を使用することができます。垂直分割が異なるデータベースの異なるテーブルに分割され、水平解像度が異なるデータベースに同じテーブルを分割することである:垂直解像度に対して区別されます。

垂直分割に対して、水平分割データテーブルを分類していないが、フィールドの特定の規則に従って複数のバンクに分散され、各テーブルは、データの一部を含みます。簡単に言えば、我々は、データラインセグメントに従うものと理解いくつかの行他のカットしながら、データベースに割り当てられたテーブル内の行の一部を切断することであり、他のデータベースに割り当てられているデータポイントのレベルを削減することができ。

サブライブラリーサブテーブルルーティングルールは、例えば、メインライブラリする準備対応するSQLデータベースを含む必要がある:TDDL淘宝網はこれらの問題を解決するように設計され、コンフィギュレーション・ルールは、アプリケーション側の設計のない侵入がなく、対応する側にのみ適用しました。

水平拆分,总之,一般先分库,如果分库后查询仍然慢,于是按照分库的思想开始做分表的工作数据库采用分布式数据库(所有节点的数据加起来才算是整体数据),文件系统采用分布式文件系统任何强大的单一服务器都满足不了大型系统持续增长的业务需求,数据库读写分离随着业务的发展最终也将无法满足需求,需要使用分布式数据库及分布式文件系统来支撑。

总结,数据库拆分原则:

阿里P8架构师谈:架构设计之数据库垂直、水平拆分六大原则

1.优先考虑缓存降低对数据库的读操作。

2.再考虑读写分离,降低数据库写操作。

3.最后开始数据拆分,切分模式: 首先垂直(纵向)拆分、再次水平拆分

4.首先考虑按照业务垂直拆分。

5.再考虑水平拆分:先分库(设置数据路由规则,把数据分配到不同的库中)

6.最后再考虑分表,单表拆分到数据1000万以内。

おすすめ

転載: www.cnblogs.com/windpoplar/p/11973205.html