MySQL 分区在创建后需要特殊查询才能利用吗?

Does MySQL Partitioning Require Special Queries To Take Advantage After Creating It?

我是 MySQL/MariaDB 分区的新手,还没有创建分区,但正在阅读相关内容。我的第一个问题是,如果我根据 dt_created DATETIME 列按年和月份对 table 进行分区,我是否需要更改我执行 SQL 查询的方式以便当我在 dt_created 上进行单日查询时,是否开始看到性能提升?或者,执行标准查询,例如:

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

工作够好吗?

基本上。你可以这样查询:

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 将打开 所有分区 以检查它是否在那里找到匹配项。