欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

要不要使用分区表

程序员文章站 2022-03-04 13:57:15
...

一  分区表是什么?

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 速度快,对系统影响小