要不要使用分区表

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_23864697/article/details/88292062

一  分区表是什么?

CREATE TABLE `t` (
  `ftime` datetime NOT NULL,
  `c` int(11) DEFAULT NULL,
  KEY (`ftime`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1
PARTITION BY RANGE (YEAR(ftime))
(PARTITION p_2017 VALUES LESS THAN (2017) ENGINE = InnoDB,
 PARTITION p_2018 VALUES LESS THAN (2018) ENGINE = InnoDB,
 PARTITION p_2019 VALUES LESS THAN (2019) ENGINE = InnoDB,
PARTITION p_others VALUES LESS THAN MAXVALUE ENGINE = InnoDB);
insert into t values('2017-4-1',1),('2018-4-1',1);

     对于引擎层来说,是4个表,对于Server层来说,是一个表

二  分区表的引擎层行为

      手工分表和分区表的区别在于Server层,分区表每次第一次访问分区表的时候,会每个分区都访问一遍

三 分区表的Server层行为

      当作一张表

四  分区表的应用场景

      如果一项业务跑的时间足够长,删除某个时间的数据的时候 alter table t drop partition 速度快,对系统影响小

猜你喜欢

转载自blog.csdn.net/qq_23864697/article/details/88292062