【发布时间】:2011-01-11 13:26:19
【问题描述】:
我有一个 mysql 数据库表,我想按日期分区,特别是按月和年。但是,当为新的月份添加新数据时,我不想手动更新数据库。
当我最初创建数据库时,我有 11 月 9 日、12 月 9 日、1 月 10 日等的数据。现在,当 2 月开始时,我希望自动创建 2 月 10 日的分区。这可能吗?
【问题讨论】:
-
我不确定这是否是最好的主意。每次更改分区时,基本上都会重写整个表。这可能需要相当多的时间和资源。
-
@Mchl 如果您有更好的想法,我会很高兴听到它。你是对的,它非常密集(比我想要的还要多),但如果它每月只运行一次,那也不算太糟糕——尤其是当我需要进行常规查询时,比如“选择上个月的第 3 天”。
-
“每次更改分区时,基本上都会重写整个表”:完全不是这样。添加分区或删除分区就像创建/删除表。基本上是即时的。仅修改 其中已有数据 的现有分区可能会很慢。因此,如果您在插入数据之前为下个月创建一个新分区,那将非常快。
标签: mysql database performance partitioning