SQL:与其他方式相比,在个人`id`之前查询`group_id`是否更好?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (3)

建立:

CREATE TABLE tbl (group_id integer, id integer)
INSERT INTO tbl VALUES (1, 1)
INSERT INTO tbl VALUES (1, 2)
INSERT INTO tbl VALUES (1, 3)
INSERT INTO tbl VALUES (2, 1)
INSERT INTO tbl VALUES (2, 2)
INSERT INTO tbl VALUES (3, 1)
...
INSERT INTO tbl VALUES (999, 999999)

查询#1

SELECT * FROM tbl WHERE group_id > 1 AND group_id < 10 AND id > 100

查询#2

SELECT * FROM tbl WHERE id > 100 AND group_id > 1 AND group_id < 10

查询#1与查询#2之间是否存在性能差异?

更具体地说,group_id在“更高分辨率”列(例如id)之前查询“较低分辨率”列(例如)是否有任何优点或缺点?

(使用Postgresql)

提问于
用户回答回答于

如果查看说明查询,您会发现where子句的顺序对查询计划,执行或性能没有影响。从PSQL的角度来看,您的查询在功能上是等效的。

扫码关注云+社区

领取腾讯云代金券