【问题标题】:mysql partitions: double enum partitioning keymysql分区:双枚举分区键
【发布时间】:2023-04-01 06:50:01
【问题描述】:

我有一个包含大量数据的表,其中包含复合主键:node_id、ts(时间戳)、geo_id 和 period_type_id。最后两个是枚举,实际上它们是整数,但可能值的集合有限(只有 1,2,3),那里永远不会有新值。

我正在考虑一个分区解决方案,我读到分区效果最好,当只有一个分区扫描给定查询时。当我按这两个枚举对表进行分区时,就会发生这种情况。问题是 - 如果我想按两个整数字段 geo_id 和 period_type_id 进行分区,alter 表应该是什么?有 HASH、LIST 和 RANGE 分区类型 (http://dev.mysql.com/doc/refman/5.1/en/partitioning-types.html),但我不想盲目猜测,因为创建这些分区需要数小时甚至数天(大量记录)。

【问题讨论】:

    标签: mysql database-partitioning


    【解决方案1】:

    如果表中没有一百万行,请不要使用 PARTITIONing。

    RANGE 分区是唯一一个有望在实际案例中提供性能改进的版本。

    让我们看看您想在表上使用的一些 SELECT。让我们看看 SHOW CREATE TABLE(没有分区)。在这两者之间,我们可以为您提供更好的建议。

    【讨论】:

    • 我确实已经有几百万行,我希望有几千万或几亿行,所以我可以在分区或其他解决方案(如 noSQL)之间进行选择。
    猜你喜欢
    • 2015-10-27
    • 2020-09-30
    • 1970-01-01
    • 2023-01-18
    • 2020-04-23
    • 2012-12-12
    • 1970-01-01
    • 2021-08-16
    • 1970-01-01
    相关资源
    最近更新 更多