我正在考虑将我们的一些大型日志表移动到范围分区,以便于归档它们。它们很少用于查询,除了支持和相关的东西。假设我最旧的数据来自 2013 年,我每年将使用 1 个分区。如果我提前几年(比如到 2025 年)添加分区,会有什么负面影响?此外,是否可以使用时间戳列作为分区键,或者使用一年生成的列有什么优势?
我正在考虑将我们的一些大型日志表移动到范围分区,以便于归档它们。它们很少用于查询,除了支持和相关的东西。假设我最旧的数据来自 2013 年,我每年将使用 1 个分区。如果我提前几年(比如到 2025 年)添加分区,会有什么负面影响?此外,是否可以使用时间戳列作为分区键,或者使用一年生成的列有什么优势?
没有任何。分区基本上是一个不可见的表,因此您将在各种目录表中有一些额外的行,并且每个空分区有四个预分配的范围。
我看不出有任何理由使用生成的列。我不认为优化器将能够消除在
year(timestamp_column)
给定搜索谓词上定义的分区timestamp_column
,因此您可能需要修改现有查询以利用分区消除。此外,如果您想要分区索引,则需要向它们添加分区键列,并且year(timestamp_column)
从几乎任何其他方面来看,索引列都是无用的。