繁体   English   中英

Mysql 5.5自动创建每月分区

[英]Mysql 5.5 autocreate monthly partition

我有数据库表,每天插入大约10k行。 数据库已经有10m +记录。 我想知道如何在这个表上每个月自动创建分区,以便我可以更快地获取数据。

对表上创建的分区没有任何限制。

例如。

  • 2000年的12个分区
  • 2001年的12个分区,依此类推......

分区应该在每个月的开始时自动创建。

我的方案中有日期栏。

不,您必须定期运行ALTER TABLE以添加分区。 MySQL没有自动添加分区以响应数据增长的功能。 但你当然可以创建一个cron工作来完成它。 或者您可以使用MySQL EVENT

MySQL 5.5允许每个表最多1024个分区,而MySQL 5.6每个表最多增加8192个分区。 因此,如果您每年创建12个分区,则可以存储至少85年的数据。

但请注意,分区并不是一种使所有查询更快的神奇解决方案。 只有优化程序可以根据您的查询条件修剪检查的分区时,分区才有用。 例如,如果按日期进行分区,但随后对特定用户的所有行运行查询而不考虑日期,则查询必须检查所有分区,因为给定用户的行可能在任何月份都存在。

以每天10k行的增长速度,您的餐桌每年将增加3,650,000。 这当然是非常快速的增长,但并非不可能处理。

我在一些拥有数亿行的数据库上工作, 而不使用分区。 分区是优化某些查询的一种方法,但索引更灵活。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM