MySQL分区表操作

 

-- 查看分区表信息
SHOW CREATE TABLE table1;
SHOW TABLE STATUS LIKE 'table1';

-- 查看各分区信息
SELECT TABLE_NAME,PARTITION_NAME,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,AVG_ROW_LENGTH/1024 as 'AVG_ROW_LENGTH (KB)',DATA_LENGTH/(1024*1024) as 'DATA_LENGTH (MB)',MAX_DATA_LENGTH/(1024*1024*1024*1024) as 'MAX_DATA_LENGTH (TB)',INDEX_LENGTH/(1024*1024) as 'INDEX_LENGTH (MB)',UPDATE_TIME,CHECK_TIME
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME='table1' AND TABLE_SCHEMA='db1';

-- 生成truncate/drop 3个月前分区的SQL  以日期分区类型, 其它的如按周分区的, 修改对应的条件即可
SELECT concat('alter table ',TABLE_NAME,' truncate partition ',PARTITION_NAME,';') as '执行删除分区的SQL', TABLE_NAME,PARTITION_NAME,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,AVG_ROW_LENGTH/1024 as 'AVG_ROW_LENGTH (KB)',DATA_LENGTH/(1024*1024) as 'DATA_LENGTH (MB)',MAX_DATA_LENGTH/(1024*1024*1024*1024) as 'MAX_DATA_LENGTH (TB)',INDEX_LENGTH/(1024*1024) as 'INDEX_LENGTH (MB)',UPDATE_TIME,CHECK_TIME
FROM INFORMATION_SCHEMA.PARTITIONS
WHERE TABLE_NAME='table1' AND TABLE_SCHEMA='db1' 
and STR_TO_DATE(SUBSTR(PARTITION_DESCRIPTION FROM 2 FOR 10),'%Y-%m-%d') BETWEEN '2011-10-01' and DATE_SUB(CURRENT_DATE,INTERVAL 3 MONTH);

转载于:https://www.cnblogs.com/krisy/archive/2012/11/28/2793124.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值