【问题标题】:Does MySQL Partitioning Require Special Queries To Take Advantage After Creating It?MySQL 分区创建后是否需要特殊查询才能发挥优势?
【发布时间】:2020-12-11 08:53:07
【问题描述】:

我是 MySQL/MariaDB 分区的新手,还没有创建分区,但我正在阅读它。我的第一个问题是,如果我根据 dt_created DATETIME 列按年和月对表进行分区,我是否需要更改执行 SQL 查询的方式,以便在执行dt_created 的单日查询?或者,执行标准查询,例如:

SELECT * FROM web_tracking_events where dt_created >= '(some time goes here)'

工作够好吗?

【问题讨论】:

  • 请参阅mysql.rjweb.org/doc.php/partitionmaint,如果您还没有
  • 分区本身不会产生任何性能优势。 (有少数例外;您的用例不是其中之一。)至于标题问题——查询中没有语法变化。
  • @RickJames 我知道你在这方面是公认的专业人士。所以,你说服我不要进行分区。感谢您在网络上提供的丰富信息! :)

标签: mysql mariadb database-partitioning table-partitioning


【解决方案1】:

基本上。您可以进行如下查询:

SELECT * FROM web_tracking_events where dt_created >= '(some time goes here)'

这称为修剪。见https://dev.mysql.com/doc/refman/8.0/en/partitioning-pruning.html

但是,这意味着 mysql 将打开 所有分区 以检查它是否在那里找到匹配项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-13
    • 1970-01-01
    • 1970-01-01
    • 2015-12-31
    • 1970-01-01
    • 2021-08-07
    • 1970-01-01
    • 2018-07-24
    相关资源
    最近更新 更多