• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

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

sql 来源:dodo 3次浏览

查询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放入子查询中。


版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)