Postgresql的不同查询为何同样解释?

查询1:Postgresql的不同查询为何同样解释?

select c_bh,c_xzdm,c_twhbm,d_tjrq 

from (

select c_bh,c_xzdm,c_twhbm,d_tjrq

from t_table

order by d_tjrq desc

) t1

limit 10

问题2:

select c_bh,c_xzdm,c_twhbm,d_tjrq 

from t_table

order by d_tjrq desc

limit 10

相同的计划:

Limit (cost=0.44..18.79 rows=10 width=59) 

-> Index Scan using i_t_table_d_tjrq on t_table (cost=0.44..32135085.58 rows=17507700 width=59)

回答:

在第一种情况时,PostgreSQL “变平”子查询,以便它可以被优化更好。结果等同于第二个查询。

如果您想避免这种情况,请将优化屏障OFFSET 0放入子查询中。

以上是 Postgresql的不同查询为何同样解释? 的全部内容, 来源链接: utcz.com/qa/261733.html

回到顶部