【发布时间】:2014-01-06 19:37:09
【问题描述】:
我正在设置分区以按季度分隔非常大的数据集。有没有办法让 Mysql 每季度自动创建一个新分区,还是我必须预先分配它们?
这方面的最佳做法是什么?也许只是为接下来的几年制作所有分区而忘记它?还是运行季度计划?
感谢您的任何建议。
【问题讨论】:
-
mysql 根据表达式创建分区。这意味着如果分区计算的结果返回一个以前未用于分区的值,它将自动创建新分区。例如
PARTITION BY YEAR(datefield)每年都会创建一个新分区。 -
@MarcB:你在想
HASHPartitioning,例如PARTITION BY HASH(YEAR(datefield))? -
MarcB 是的。由于分区键也必须在每个唯一键中,我需要将 row_id (auto inc) 与 YEAR(timestamp) 结合起来。但是我的数据每年都在翻倍,所以每年可能不是最好的答案。我真的很想对每 50,000,000 条左右的记录进行分区。我现在有超过 6 亿条记录。我的问题是 row_id 不在每个唯一键中,如果是的话,会弄乱我的查询。
标签: mysql database-partitioning