要不要使用分区表
程序员文章站
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 速度快,对系统影响小
上一篇: mysql幻读
下一篇: Scala 嵌套方法、多参数列表、样例类