【问题标题】:When not to partition a table (MySQL)?什么时候不分区表(MySQL)?
【发布时间】:2012-08-05 03:24:11
【问题描述】:

在 MySQL (5.5+) 中, 对于大型表(500,000,000 行及以上), 您始终通过指定主键来访问(读取和写入), 是否存在分区(按主键)不会提高性能

尤其是当每一行都很薄(3 个 int 列)时。

提问的理由: 对于内容繁重的表(多个 varchar/text 列),我已经看到了很好的改进,但在类似的情况下,对于细行(3 个 int 列),我认为我看到的性能比没有分区时更差。 [都使用基于主键(int)的100个分区]

【问题讨论】:

    标签: mysql performance database-design partitioning bigdata


    【解决方案1】:

    首先,尽可能尝试不同类型的分区:

    HASH,RANGE,KEY,LIST 和子分区以查看哪个在空间和时间方面产生最佳结果。

    http://dev.mysql.com/doc/refman/5.1/en/partitioning-types.html

    其次,使用explain partitions获取分区统计信息:

    http://dev.mysql.com/doc/refman/5.5/en/explain.html

    http://dev.mysql.com/doc/refman/5.5/en/partitioning-info.html

    最后,我建议查看这篇内容丰富的帖子:

    http://chrismoos.com/2010/01/31/mysql-partitioning-tables-with-millions-of-rows/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-19
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      • 2020-01-09
      相关资源
      最近更新 更多