我必须设计一个MySql数据库,其中一个表有数百万条记录,并且它每天都在变得更大,我的第一种方法是使用基于年份的分区:
示例:
CREATE TABLE employees (
id INT NOT NULL,
fname VARCHAR(30),
lname VARCHAR(30),
hired DATE NOT NULL DEFAULT '1970-01-01',
separated DATE NOT NULL DEFAULT '9999-12-31',
job_code INT,
store_id INT
)
PARTITION BY RANGE ( YEAR(separated) ) (
PARTITION p0 VALUES LESS THAN (1991),
PARTITION p1 VALUES LESS THAN (1996),
PARTITION p2 VALUES LESS THAN (2001),
PARTITION p3 VALUES LESS THAN MAXVALUE
);我的目标是定期存档所有数据,在某个地方,exe。历史表或其他东西,但在前端应用程序中,我需要查询当前年份的数据和过去几年的数据。
哪种方法对你来说是最好的方法?有什么经验吗?
谢谢!
发布于 2020-03-18 11:21:04
“一天比一天大”不是问题。“定期存档”是PARTITION BY RANGE的一个很好的用法。
在12月31日,创建下一个分区。
根据分区所包含的内容(p1999 VALUES LESS THAN (2000)等)命名分区。
使用“可传输的表空间”进行归档。5.6和5.7的工作方式不同,所以请查看详细信息。
https://stackoverflow.com/questions/60618718
复制相似问题