Postgres 的查询规划器是否能够WHERE
根据交换性和结合性规则重新排列子句中的术语?
例如,以下WHERE
子句是否都会产生具有大致相同时间复杂度的查询计划?:
WHERE a AND b AND c
WHERE (a AND b) AND c
WHERE a AND (b AND c)
WHERE (c AND b) AND a
Postgres 的查询规划器是否能够WHERE
根据交换性和结合性规则重新排列子句中的术语?
例如,以下WHERE
子句是否都会产生具有大致相同时间复杂度的查询计划?:
WHERE a AND b AND c
WHERE (a AND b) AND c
WHERE a AND (b AND c)
WHERE (c AND b) AND a
是的,优化器会根据
WHERE
它认为合适的方式重新排列条件,并且您的所有示例都将产生相同的执行计划。