MySQLのサブライブラリーのサブテーブルのインタビューの知識

シーン解析
Web開発作業は、また、またはその他のデータおよび開発作業、知識のサブライブラリー、サブテーブル、パーティション、膨大な量が必要です。
インタビュー、またそこに求められることがあります。しかし、経験豊富なコーダーとして、なじみのないサブライブラリーのサブテーブルの技術はいくつかの低を持っています。
基本的な概念
過剰単一テーブルデータクエリ効率が低下することによって引き起こされる問題を解決することができる点テーブル、
サブライブラリー、高い同時読み取りおよび書き込みアクセスの顔、マスタ・データベース・サーバに関係なく拡張スレーブ・サーバの、書き込み圧力を運ぶことができませんこの時点では意味がありません。この時点で、あなたは、データベースへの同時アクセスの能力を強化するために、データサブライブラリーの戦略を渡す必要があります。
メリット、サブライブラリー、効果的にデータベースサーバの負担を軽減するために最適化されたサブテーブルのデータ・ストレージ・テクノロジー、クエリの応答時間が短縮します。

サブライブラリデータ、サブテーブルストレージシーン条件

リレーショナルデータベース
マスタ-スレーブ・アーキテクチャ(マスタスレーブ)
単一のテーブル数百万レベルのデータ量
データベースに高い同時アクセスに直面
サブライブラリー、サブテーブルの実装戦略

キーワードは、データアクセスの経路を実現MODULO。
サブライブラリー

例えば、
機能に応じて
、ユーザライブラリ、ライブラリ財順序ライブラリー、ライブラリおよび他のログ
領域によって、
各都市又は同様の地方ライブラリ、次のようなdb_click_sh db_click_bj、
風景/水平パーティションテーブルは:あまりにテーブルのレコードを解決します大きな問題(セグメンテーションのレベル)

主な問題:

シングルの表は、によって引き起こされる大きすぎるパフォーマンスの問題であり、
単一の大規模サーバースペースの問題上の単一のテーブルが原因。
ポイントによってフィールド

例えば:データテーブルは3つの取付点附属表pre_forum_attachment_に分割されているユーザ[0 | 1 | 2] 、及び添付ファイルインデックステーブル(TID記憶された関係と添付ファイルID)、附属書に応じて決定されるが、ここで最後の部分のテーブルに格納されたTID 。
日付ポイントテーブルによって
ログ、統計クラスデータテーブルのための年、月、日、週ポイントテーブルによって。以下のような:統計はclick_201801トラフィック、click_201802が
マージMySQLのストレージエンジンを通じて達成
、サブテーブルを作成する必要があるサマリー表を、サマリー表は、ストレージエンジンをマージする必要があります。
サンプルコードは、
表のlog_merge(作成
日時ないヌルDT、
情報VARCHAR(100)NOT NULL、
  インデックス(dt)を
)=エンジンマージ
(log_2017、log_2018)INSERT_METHOD =最終=連合を。

縦/垂直部表:過剰なカラムの問題を解決する(垂直スライシング)

垂直テーブルの一般的な方法は、ポイントテーブルなどの重要度に応じて、活動リストに従って分割されます。
主な問題は:
テーブルとテーブルリソース競合の問題の間、
小ロック競合確率;
例えばUDBライブラリ着陸として、コアと非コア階層型ストレージを実現するには、2つの3つのライブラリに分割され、
データベース同期の圧力の問題。
具体的な戦略は、
フィールドが共通メモリエンジンと考えることができ、テーブルの上に多くの場合、表の列のクエリを組み合わせたものです。
フィールドは、頻繁にテーブルとして単独で使用されていません。
テキスト、ブロブ分割計画上の他の大規模なフィールド。以下のような:テーブル格納された特定のコンテンツからなどのテーブルnews_data、メインメモリテーブルのタイトル、キーワード、ページビュー、からメインテーブルの記事やニュースにユーザテーブル、テンプレートなど。
サブライブラリーのサブテーブル上の注意
次元の問題
ユーザーの購入履歴データ、ユーザポイントテーブルの緯度に応じて、各ユーザーのトランザクションレコードは、その非常に迅速かつ非常に簡単にユーザーの購入を検索するには、同じテーブルに格納されていますしかし、購入する商品の場合は、より多くのトラブルを見て、複数のテーブルに分散することができます。
製品寸法、商品の購入を見つけるのは簡単ですが、個人の取引記録を見つけるためにあまりにも多くの問題により、ポイントテーブルの場合。
一般的な解決策は:
あまりにも非効率的ではなく、実現可能な、抜本的な方法でテーブルを解決します。
ユーザ緯度サブテーブル、製品寸法に応じて部品表による2つのデータレコード。
解決するために、検索エンジンではなく、リアルタイムの要求が高い場合、問題は、リアルタイム検索を必要とします。
避けサブテーブルは、操作に参加します。関連するテーブルは、同じデータベースを持っていないかもしれません。
クロスデータベーストランザクションを避けるため
、トランザクションDB0にテーブルでDB1を変更を避けるために、動作が複雑でなく、効率に影響を与えないだけで。
多くの以下の望ましい一部テーブルと、後者は、二次分割を防止することができます。
DBサーバ統一データの同じセットを試してみてください。例えば、売り手に関連する何かが正常に使用することができたときにDB1がハングアップDB0への商品や取引情報の売り手、。すなわち、依存を避けるために、データベース内の複数のデータ。

参考文献
MySQLはすぐにデータモードのプロを作る千万テストデータを挿入両論:. Https://www.2cto.com/database/201603/493032.html
百万のMySQLのテストデータの方法は、データを挿入し迅速に行います。他の3つの方法が要約される:https://www.cnblogs.com/endtel/p/5404065.html
サブテーブルと簡単な例のMySQLデータベースを達成する:. https://www.cnblogs.com/miketwais/articles/mysql_partition.html
MySQLの:.ためのサブライブラリサブテーブルと実際の動作PHPコードのPHPコードの完全な例https://blog.csdn.net/nuli888/article/details/52143065
のmySQL -アメーバに別個読み取りおよび書き込み:HTTPS:// WWW .2cto.com /データベース/ 201610 / 555777.html

おすすめ

転載: www.cnblogs.com/weigy/p/12564100.html