====== パーティショニング ====== ===== テーブル作成時の注意点 ===== - パーティショニングのキーにしたいカラムは、プライマリキーに含まれている必要がある - パーティションの操作はロックが掛かるので、メンテナンス中に行う ===== パーティションの作成 ===== 月別に別ける場合 ALTER TABLE テーブル名 PARTITION BY RANGE COLUMNS(created_at) ( PARTITION p201610 VALUES LESS THAN ('2016-11-01 00:00:00') COMMENT='2016-10', PARTITION p201611 VALUES LESS THAN ('2016-12-01 00:00:00') COMMENT='2016-11', : : PARTITION p201912 VALUES LESS THAN ('2020-01-01 00:00:00') COMMENT='2019-12', PARTITION pmax VALUES LESS THAN MAXVALUE ) ===== パーティションの振り分けを確認 ===== SELECT TABLE_SCHEMA,PARTITION_NAME,PARTITION_ORDINAL_POSITION,TABLE_ROWS FROM INFORMATION_SCHEMA.PARTITIONS WHERE TABLE_NAME="テーブル名" ===== どのパーティションが使われているか ===== SQL コマンドの前に "EXPLAIN PARTITIONS" を付ける。 EXPLAIN PARTITIONS SELECT * FROM テーブル名 WHERE created_at >= "2016-10-01 00:00:00" && created_at < "2016-12-01 00:00:00" ===== パーティションの削除(中のデータも消える) ===== ALTER TABLE テーブル名 DROP PARTITION パーティション名