パーティションテーブルのMySQLに関連します

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;
公開された295元の記事 ウォン称賛35 ビュー80000 +

おすすめ

転載: blog.csdn.net/Hehuyi_In/article/details/105168083