1

我有一张表,最终将有大约 14 亿条记录,11 列,3 个主键。

我已经填充了表的前 1/3,查询时间已经很慢了。我重新格式化了几列以减少空间需求,其中一个主键是一个类似索引的整数,它链接到一个元数据表,其中每个索引扩展为 3 个附加选项(有效地将 6 个主键归一化为 3 个主键)。

我的下一个想法是创建很多分区。第二个主键是日期列,这是迄今为止最常见的数据切片维度。我希望分区是有效的,并且也能提高插入时间。

但是,我怎么知道正确的分区数是多少?我最初的猜测是 8,这太慢了。当我想我应该问时,我正要尝试 100 并且谷歌搜索没有给我任何有用的答案。

该表如此之大,生成它的计算过程如此昂贵,以至于尝试许多不同的分区号是不可行的。因此,任何类型的标准建议都非常有用。

4

1 回答 1

3

以下是您需要考虑的事项:

  • MySQL 5.5+ 中的最大分区数为 1024。
  • 您可以在不重新生成数字的情况下更改分区数量,尽管它需要重建索引。
  • 仅当查询命中较少的分区然后您有可用的内核时,分区才会加快向上查询

如果您的查询命中所有或许多分区,那么以这种方式进行分区不会对它们有太大帮助。您的设置也有可能是有效的,但硬件无法更快地产生结果。

于 2013-05-28T11:20:53.883 回答