どのページにサブテーブルのmysqlデータベース後のクエリを通じて?MySQLのサブライブラリーのサブテーブルのプログラム?

参照
1.のみページングのため、そのような部分のテーブルは、範囲のテーブルIDであり、IDは連続的であり、このような第1テーブルID 1から100000、100000から20秒と考えられる場合万人と、このページには問題はないはず。

2.他のサブテーブル、それはスフィンクスインデックス、およびクエリのページングを構築することを推奨されている場合は、私たちの会社は現在、乾いています

MySQLのサブライブラリーのサブテーブルプログラム

1.なぜあなたは見ました:

何百万ものデータが到達する数十あなたが費やした時間になるテーブル、クエリ時間はより、共同問い合わせた場合、私が考えるときそこに死んでいたかもしれません。この中にスコアシートの目的は、クエリ時間を短縮、データベースの負担を軽減。

MySQLのテーブルロック機構及びロック行がデータの整合性を確保するために、存在します。あなたは、テーブルには、私が手術台の上に仕事を終えるために持っているので、このテーブルを操作表しロックすることはできません。行ロックは、あまりにも、私は別のSQL操作は、これらのデータを操作するために、これらのデータを終え待たなければなりません。

  1. mysqlのプロキシ:アメーバ

アメーバを使用して、MySQL Clusterのを行います。

Javaプログラムのトップが関係しているから、プライマリサーバのトップ用語の主要なデータベース・サーバーから透明であり、サーバからソースを知っている必要はありません。あなたはアメーバで構成することができます。

そしてデータの3大量しばしば複数のテーブルに分割され、テーブルにアクセスし

たとえば、サイトのプラットフォーム用のデータベーステーブル - 会社テーブル、大量のデータが、このデータは、大規模から突出することができ、我々はNのテーブルの分離を進めていきます、Nは、実際の状況に応じて、数あります。

 某网站现在的数据量至多是5000万条,可以设计每张表容纳的数据量是500万条,也就是拆分成10张表,

それでは、どのデータを特定のテーブルがいっぱいであるかどうかを判断するには?テーブルデータに追加する、レコードが最初のブロックで動作しているテーブルの数を挿入する前に、とき<500万データを直接挿入し、しきい値に達したとき、あなたは(プログラムデータベーステーブルに新しいセグメントを作成することができますまたは以前に作成した)、その後、挿入操作。

  1. サブメーターを達成するために、マージストレージエンジンを使用して

既存の大規模なデータをより痛い分離したい場合は、SQLステートメント内のプログラムが書き込まれているので、ほとんどの痛みを伴うことは、コードを変更することです。サブテーブルを達成するために、ストレージエンジンとマージ、この方法が適しています。

たとえば、子供のために:

------------------- ----------------- ----------豪華な分割線---------------------

データベースアーキテクチャ

1、簡単なMySQLのマスタースレーブのレプリケーション:

解決別々の読み取りからMySQLのマスター・コピーとデータベースを作成し、パフォーマンスと次のようである優れた読み取りを、向上させます。

下記に示すメイン複製プロセスから:

しかし、マスタースレーブのレプリケーションは、他のパフォーマンスのボトルネックのホストをもたらしています:

  1. 書き込みを延長することはできません

  2. キャッシュを書き込めません

  3. 遅延コピー

  4. ロックモデル上昇

  5. 表より大きなキャッシュレートが低下しています

何とか、次の最適化プログラムを作成する問題を解決することを、見てみましょう。

2、MySQLの垂直パーティション

ビジネスはカットに依存しない十分だった、と別のデータベースサーバーに異なるサービスからのデータは、良いプログラムになりますが、単にビジネスの崩壊の場合のいずれかで、それは他のサービスの通常走行に影響を与え、また、負荷を果たしていないということならば転換の役割は、大幅にデータベースの処理能力を向上させます。次のようにデータベース・スキーマ垂直セクションの後です。

しかし、ビジネスとの間に十分な独立性を有しているが、常に少し多かれ少なかれそのようなユーザのようないくつかのビジネスの連絡先、および各事業の間に基本的にまた、この分割手法は、単一のテーブルデータを解決することはできません関連するであろう問題の量が急騰、なぜそれが地平線を分割しようとしませんか?

図3に示すように、MySQLのスライスレベル(シャーディング)

これは単に、ユーザ(ハッシュIDによって)パケットに一定の規則によれば、非常に良いアイデアであり、そのようなユーザの数などのデータベース・スライス、すなわちAシャーディングに格納されたユーザデータのセットを送信します。 、次の図に構成されたサーバー:

そのユーザのシャードを決定するためにどのように、あなたは、ユーザーの破片を構築することができますし、以下に示すように、データテーブル対応し、各要求は、ユーザーのシャードID、で対応するシャードから、他の関連するデータを見つけるために、このリストを開始します:

おすすめ

転載: www.cnblogs.com/djwhome/p/12536018.html