【问题标题】:Does INNODB storage engine provide default partition pruning in MySQL 5.6?INNODB 存储引擎在 MySQL 5.6 中是否提供默认分区修剪?
【发布时间】:2016-09-17 07:47:24
【问题描述】:

我知道我们可以明确定义分区修剪。但是,我想知道它是否默认提供。我已经尝试过 MySQL 的官方文档站点。该网站称,“在 MySQL 5.6.8 及更高版本中,使用提供自动分区的存储引擎(例如 MySQL Cluster 使用的 NDB 存储引擎)对所有表禁用分区修剪”。一个快速而中肯的答案和解释将是值得的。

提前致谢

【问题讨论】:

    标签: mysql optimization database-design


    【解决方案1】:

    简短回答:是的。

    长答案:注意一些微妙的术语......

    InnoDB 没有“自动分区”;必须明确指定分区。 NDB 自动对数据进行分区。

    InnoDB 将自动修剪到 WHERE 子句通过“分区键”上的条件隐式指定的分区。

    但是,请注意,修剪通常并不比在非分区表上创建一个好的复合索引更好。

    我声称​​只有 4 use cases 其中PARTITIONing 提供任何性能优势。此外,我声称BY RANGE 是唯一有帮助的风味。

    如果您想向我们展示您的SHOW CREATE TABLESELECT,我们可以讨论PARTITIONing 是否有任何好处。而且,如果没有好处,为什么。

    【讨论】:

    • 谢谢。实际上我正在做一些研究,因此我想知道。直到现在我才刚刚开始实施它。如果我找到对我有帮助的东西,我会问。再次感谢。
    猜你喜欢
    • 2019-01-14
    • 2016-12-23
    • 1970-01-01
    • 2011-01-18
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多