プロジェクトが終了すると、突然データベースの分割と垂直分割のレベルが曖昧であり、学びたい発見!
参考:HTTPS://www.cnblogs.com/bluebluesky/articles/6413831.html
1、データベース・パーティション
、別々のサーバ上に同じデータベーステーブルにあるロード・バランシングが、ユーザーの視点に、一つだけのサーバがあります
2、データベースサブテーブル
一定の規則に従って異なるテーブルのエンティティに一つのテーブル。このような縦分割及び横分割
2.1、垂直スライシング
異なるモジュールのさまざまな機能は、各データに異なるテーブルが、データモジュールは、同じ性能のボトルネックになりすぎる場合
2.2、水平分割
データは同じ関数テーブル大きすぎると垂直分割は、大きなテーブルのボトルネックを解決することはできません、テーブルには、セグメンテーション、水平、セグメント化されなければなりません
人気の理解:垂直セグメンテーション---異なるモジュールテーブルに分け、同じモジュールの下に複数のテーブルで---分割レベル
2.3、両方の組み合わせ
垂直セグメンテーションモジュールは、異なるメニューに分かれてより明確に行うことができ、スライスレベルは、データの大きなテーブルが大きいパフォーマンスのボトルネックを解消することができます。
2.4ケース
MySQLで、例えば、一時的に次の表に位置するシンプルなショッピングシステムが含まれます。
表1の製品(データ量10ワット、安定化)
2. Ordersテーブル(データ量200ワット、及び成長する傾向がある)
3.ユーザ・テーブル(データ量100ワット、及び成長する傾向がある)
例では、約で水平および垂直解像度のmysqlスプリット、MySQLは万人を超える百万個から10個の静的なデータが可能な大きさの順に耐えることができます
:縦割り
の問題を解決するために:
テーブルとテーブルの間IOの競争が
問題を解決しない:
単一シート成長圧力が表示されるデータの量
:スキーム
の製品テーブルをそして、サーバ上に配置されたユーザ・テーブル
上の別のサーバにOrdersテーブル
の水平分割は:
:問題解決するために
圧力の成長の単一のテーブルは、データの量
問題を解決しない:
IO競合テーブルとテーブルの間に
:スキーム
性別によってユーザテーブル男性と女性ユーザーのユーザーテーブルのテーブルに分割
受注テーブルが完了し、完了した注文および受注残高に分割することによって完成された
サーバは、テーブル受注残の上に置いた製品の
サーバー上の注文フォームボックス男性テーブルプット完了した
女性をユーザテーブルは、サーバー上(のショッピング女性の愛を)入れ
3、サブライブラリー
上記に格納されている別のデータベースへのデータのパイルは、同じデータベース上にある、点が異なるデータベース上のライブラリに割り当てられている前記しました
パーティションおよびサブテーブルとの間の4、差との関係
1)及び宛先サブパーティションテーブル効率テーブルを高める、データベースの負担を軽減することであるCRUD
2)データがパーティションテーブルに格納されている場所の知識が変更され、またはテーブルで、テーブルは複数のテーブルに分割した表であります
大きな、より火災テーブルデータへのアクセスは、二つの方法で相互に組み合わせて使用することができる3)
4)負荷の軽いが、長い時間のためのデータ比較表、あなただけのパーティションができた場合
図5は、サブライブラリーのサブテーブルに問題があります:
1)取引の問題
サブライブラリーサブテーブルを実行した後、別のライブラリに保存されたデータ、データベース、トランザクション管理の困難が生じたため。あなたはデータベースに依存している場合は、それ自体は、ヘルプへの応用は、希望負担プログラミングをプログラムロジックに形成トランザクションをコントロールしている場合、高いパフォーマンスコストを支払うことになり、トランザクションを実行するトランザクション管理機能を配布しました。
2)テーブルを横切ってクロスデータベースの問題に参加します
サブライブラリーサブテーブルを実行した後、除算を回避することは困難であり、関連する操作の対象となる異なるライブラリに、別のテーブルへのデータの関連性の高いオリジナルロジックは、制限されるであろう、我々は、異なるサブライブラリーに参加することができません表が異なるサブテーブルサイズのテーブルを結合することができない、クエリの結果がビジネスを達成することができ、あなたは複数のクエリを完了する必要があるかもしれません
3)追加的なデータ管理負担と圧力データ操作
データ管理上の追加負担は、データを削除し、データを変更して再検索の実装の重複の位置付け、これらはアプリケーションによって解決することができますが、操作は必然的に追加のロジックにつながる例えば、ユーザレコードのユーザデータテーブルのための製品USERTABLEは、サブテーブルを実行する前に、ビジネス要件に最高のパフォーマンス100を特定し、声明による一つだけ注文が処理することができますが、ポイントテーブルを作成した後、文によってn個の順序が必要になり、毎分を発見されましたトップ100のユーザデータテーブル、及び、これらのデータは、結果を得るために集約