MySQL分区注意事项

时间:2013-04-03 13:28:56

标签: mysql partitioning database-partitioning

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

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

我的下一步想法是创建大量分区。第二个主键是日期列,这是切片数据的最常见维度。我希望分区有效并且也可以改善插入时间。

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

表格如此之大,生成它的计算过程非常昂贵,尝试使用很多不同的分区号是不可行的。因此,任何形式的标准建议都非常有用。

1 个答案:

答案 0 :(得分:3)

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

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

如果您的查询命中所有或多个分区,那么以这种方式进行分区对他们来说无济于事。 您的设置也有可能有效,但硬件无法更快地生成结果。