查询表分区
SELECT
  partition_name part,
  partition_expression expr,
  partition_description descr,
  FROM_DAYS(partition_description) lessthan_sendtime,
  table_rows
FROM
  INFORMATION_SCHEMA. PARTITIONS
WHERE
  TABLE_SCHEMA = SCHEMA ()
AND TABLE_NAME = '表名';
分区操作
注意 分区字段create_time_必须为主键之一
ALTER TABLE `zsmy_sys_log` partition by range (to_days(`create_time_`))
(
PARTITION p20160301 VALUES LESS THAN (to_days('2016-03-01')),
PARTITION p20160401 VALUES LESS THAN (to_days('2016-04-01')) ,
PARTITION p20160501 VALUES LESS THAN (to_days('2016-05-01')) ,
PARTITION p20160601 VALUES LESS THAN (to_days('2016-06-01')) ,
PARTITION p20160701 VALUES LESS THAN (to_days('2016-07-01')) ,
PARTITION p20160801 VALUES LESS THAN (to_days('2016-08-01')) ,
PARTITION p20160901 VALUES LESS THAN (to_days('2016-09-01')) ,
PARTITION p20161001 VALUES LESS THAN (to_days('2016-10-01')) ,
PARTITION p20161101 VALUES LESS THAN (to_days('2016-11-01')) ,
PARTITION p20161201 VALUES LESS THAN (to_days('2016-12-01')) ,
PARTITION pmax VALUES LESS THAN MAXVALUE 
);
查看当前分区情况
select 
  partition_name part,  
  partition_expression expr,  
  partition_description descr,  
  table_rows  
from information_schema.partitions  where 
  table_schema = schema()  
  and table_name='zsmy_sys_log';  
测试效率
select * from zsmy_sys_log where create_time_ BETWEEN '2017-02-01 00:00:00' and '2017-02-28 23:59:59'
追加分区
因为用了MAXVALUE,所以只能在最后的分区里面继续分
ALTER TABLE `zsmy_sys_log` reorganize partition pmax into 
(
PARTITION p20170101 VALUES LESS THAN (to_days('2017-01-01')) ,
PARTITION p20170201 VALUES LESS THAN (to_days('2017-02-01')) ,
PARTITION pmax VALUES LESS THAN MAXVALUE 
);
                      
                      
                    
            
          
          
评论区