ビッグデータ-ポイントテーブルのパーティションと倉庫
一連の質問:
?1、それが唯一のアクセス量テーブルを低減するが、あるかのように、サブテーブルデータ二つのテーブルが同じデータが複数であるか、またはクエリの効率を改善しない場合は
Aを:分表は、3つのテーブルに行動分割の特定の規則に従ってデータのテーブルであり、データは、すべての3つの表のための完全なデータである
図2に示すように、サブライブラリーサブテーブル組み合わせた場合、読み取りライブラリ、ライブラリそれはとき書き込みは、データが一致しているか
:なぜ、データベーステーブルのデータを分離する必要があり
、データベース、テーブル、時間をかけて、顧客の量を増やし、データシートはさらに高めることは非常に容易ですそしてより多くのために、
我々は非常に時間がかかるため、データ分割操作の必要性を変更し、クエリ。
パーティション:データテーブルは端のみ論理テーブルに、N個のブロックに分割されているが、根底にある物理ブロックがNで構成されています
サブテーブル:テーブルは、ストレージ空間を有するN個の別個のエンティティテーブルに分解一定の規則です。システムは、それを操作すると、対応するワードを示す定義されたルールに従って読み書きする必要があります。
サブライブラリー:複数のデータベース・インスタンスに分割され、各テーブル名と同じデータベース・インスタンス内の
場合パーティションポイントテーブル:
1、多くの人々は、特に大規模な、しかしデータは、パーティションにアクセスすることができ
、特に、データアクセス、2結合分割長いテーブルとパーティションの人々
ライブラリを分割する場合:
すべてのデータがデータベースに格納するには不十分である
1垂直解像度:サブルール・リポジトリを異なるデータベース内のサービスタイプに応じては、(異なるデータ情報を格納します好ましくは0カップリング)
垂直ライブラリ- >サブライブラリレベル- >別々の読み取りおよび書き込み
パーティションテーブル処理に:
部品表を通ってサマリー表を作成する(表は、すべての点からのデータを要約する)、データ・サマリー・テーブルに追加されます計算規則のいくつかの種類を描画するテンプレートデータを作成した問題は、テーブルの主キー違反の合計はで発生しないように、テーブルを指し示すものに追加し
たクエリが同じであれば、データ、いくつかのルールは、テーブルを指し示すものを照会しています
コード分析を分割します:
CREATE TABLEを IF NOT EXISTS ` ユーザー`( `id` int型(11)NOT NULL AUTO_INCREMENT COMMENT ' ユーザーID ' 、 ` name`のVARCHAR(50)NOT NULL DEFAULT '' COMMENT ' 名前' 、 `sex`のint型を(1)、NOT NULL DEFAULT 「0 」 COMMENT 「女性のための男性のための0と1 」、 PRIMARY KEY ( `id`) )ENGINE = MyISAMテーブル DEFAULT CHARSET = UTF8 AUTO_INCREMENT = 1つの PARTITION BY RANGE(ID)( PARTITION P0がVALUES未満(3 )、 パーティションP1はVALUES未満(6 )、 パーティションP2はVALUES未満(9 )、 PARTITION P3はVALUES未満(12 ) PARTITION P4はVALUES 未満MAXVALUEを )。
IDによって、ユーザー、およびパーティションの処理を作成します。
古い テーブルの ユーザー ドロップパーティションP2;
削除パーティション情報だけでなく、パーティション内のデータを削除します
ALTER テーブル ユーザパーティションによってRANGE(ID) (パーティションP1のVALUES未満(5 )、 パーティションP2のVALUES未満(10 )、 PARTITION P3がVALUES以下MAXVALUEより)。
転位パーティション情報
ALTER 表 USER1の追加パーティション(パーティションP4の値以下MAXVALUEより)。
パーティション情報を追加します。
ALTER 表 USER1の追加パーティション(パーティションP4の値未満(17))。
パーティション情報、前提の使用、無MAXVALUEの追加
パーティションテーブルのコード実行の分析を:
CREATE TABLEを IF NOT EXISTS `user1`( ` id` int型(11)NOT NULL AUTO_INCREMENT COMMENT ' ユーザーID ' 、 `name`のVARCHAR(50)NOT NULL DEFAULT '' COMMENT ' 名前' 、 ` sex`のint型を(1)、NOT NULL DEFAULT ' 0 ' COMMENT ' 男性のため0と女性のための1 ' 、 PRIMARY KEY ( `id`) )ENGINE = MyISAMテーブル DEFAULT CHARSET = UTF8 AUTO_INCREMENT = 1 CREATE TABLEを IF NOTが EXISTS ` user2`( `id` INT(11)NOT NULL AUTO_INCREMENTコメント' 用户IDを' 、 'NAME` VARCHAR(50)NOT NULLの DEFAULT '' COMMENT ' 名称' 、 `sex` INT(1)NOT NULL DEFAULT ' 0 ' COMMENT ' M 0、M 1 ' 、 PRIMARY KEY ( `id`) )ENGINE = MyISAMテーブル DEFAULT CHARSET = UTF8 AUTO_INCREMENT = 1
情報の2つのテーブルを作成します。
作成 テーブル user_total などの USER1を。
USER1からサマリー表のサマリー表を作成します。
ALTER TABLE user_total ENGINE = MRG_MYISAM UNION =(USER1、USER2)INSERT_METHOD = LAST。
テーブルとテーブルUSER1 USER2から、トータルのデータソーステーブルを変更します
注:使用している場合、あなたは、最初のパーティションの再分割テーブルエンジンはパーティションテーブルに再び使用されることはありません再パーティションテーブルのパーティションに必要な、パーティションテーブルを作成することができません