MySQLのパーティションテーブルがローカルに確立することができるパーティションテーブルのためのインデックスRANGE、LIST、HASH、KEY 4種類、パーティションテーブルに分かれています。
まず、作成
1.範囲パーティション表を作成します。
MySQLのパーティションテーブルのパーティションキーorder_dayが主キーに含まれなければならない、と問題を抱えているだろう - しきい値を超えた年、2013,2014に、手動でこれらのパーティションを作成する必要があります
CREATE TABLE sales (
id INT AUTO_INCREMENT,
amount DOUBLE NOT NULL,
order_day DATETIME NOT NULL,
PRIMARY KEY(id, order_day)
) ENGINE=Innodb PARTITION BY RANGE(YEAR(order_day)) (
PARTITION p_01 VALUES LESS THAN (2010),
PARTITION p_2011 VALUES LESS THAN (2011),
PARTITION p_2012 VALUES LESS THAN (2012),
PARTITION p_catchall VALUES LESS THAN MAXVALUE);
作成2. ハッシュ・パーティション・テーブルを
次の文は、データの各100Wでパーティションを作成することを示し、閾値の範囲に影響を与えませんでした
CREATE TABLE sales (
id INT PRIMARY KEY AUTO_INCREMENT,
amount DOUBLE NOT NULL,
order_day DATETIME NOT NULL
) ENGINE=Innodb PARTITION BY HASH(id DIV 1000000);
第二に、パーティションテーブルの管理操作
- サポートパーティションにするかどうかを確認してください
mysql> show variables like "%part%";
+-------------------+-------+
| Variable_name | Value |
+-------------------+-------+
| have_partitioning | YES |
+-------------------+-------+
1 row in set (0.00 sec)
- 各パーティションのルックアップテーブル
SELECT PARTITION_NAME,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME = 'history_uint';
- 削除パーティション
注あなたは削除キーまたはハッシュ・パーティション化することはできません
alter table emp drop partition p1;
-- 一次性删除多个分区
alter table emp drop partition p1,p2;
- 地区を追加
alter table emp add partition (partition p3 values less than (4000));
alter table empl add partition (partition p3 values in (40));
- スプリットパーティション
再編成のパーティションは、データ損失なしで、パーティションテーブル部分または修飾されたパーティションのすべてに行うことができる、全体的な距離分解能は、分割前と後一貫しているべきです。
alter table te reorganize partition p1 into
(partition p1 values less than (100),
partition p3 values less than (1000)); ----不会丢失数据
- パーティションのマージ
-- Merge分区:把2个分区合并为一个
alter table te reorganize partition p1,p3 into
(partition p1 values less than (1000)); ----不会丢失数据
- 再定義のハッシュパーティションテーブル
Alter table emp partition by hash(salary) partitions 7;
- レンジ・パーティションテーブルを再定義
Alter table emp partition by range(salary)
(partition p1 values less than (2000),
partition p2 values less than (4000));
- すべてのパーティションテーブルを削除します。
削除しないデータという、戻って通常のテーブルにノートを変更することと同じです。
Alter table emp remove partitioning;--不会丢失数据
- 再パーティション
パーティション内のすべてのレコードを削除し、それらをバック挿入に相当し、パーティションの残骸を整理するために使用することができます。
ALTER TABLE emp rebuild partitionp1,p2;
- 最適化のパーティション
あなたはパーティションから多数の行を削除した場合、またはオンライン可変長(タイプのVARCHAR、BLOBまたはTEXTの列)と多くの変更を行って、あなたは、「ALTER TABLE ... OPTIMIZEのPARTITION」を使用することができます回復するために使用されていませんパーティションのデータファイルをデフラグするためのスペースと。
ALTER TABLE emp optimize partition p1,p2;
- パーティションの分析
読み、パーティション・キーの配布保存。
ALTER TABLE emp analyze partition p1,p2;
- パーティションをチェック
非パーティション表のチェックテーブルの使用と同様、パーティションを確認してください。このコマンドは、あなたのデータやインデックスが破壊されているかどうかP2をemp表のパーティションP1を伝えることができます。あなたが破壊されている場合は、パーティションを修復し、修復コマンドを使用することができます。
ALTER TABLE emp CHECK partition p1,p2;
- 修理パーティション
修理破損したパーティション
ALTER TABLE emp repair partition p1,p2;