Postgres 正在为具有简单连接的多个查询执行次优连接。它似乎在进行笛卡尔连接,然后使用连接过滤器删除行,下面的解释计划显示:
Insert on sierra (cost=7.350..26.120 rows=1 width=88) (actual rows=0 loops=1)
-> Nested Loop (cost=7.350..26.080 rows=1 width=426) (actual rows=14356 loops=1)
-> Nested Loop (cost=6.240..19.470 rows=1 width=304) (actual rows=14356 loops=1)
Join Filter: (xray_two.echo_romeo = november_three.echo_romeo)
-> Nested Loop Left Join (cost=6.240..18.380 rows=1 width=184) (actual rows=14356 loops=1)
-> Nested Loop (cost=3.970..11.980 rows=1 width=187) (actual rows=14356 loops=1)
Join Filter: ((lima.victor = xray_two.victor) AND (lima.three = xray_two.three))
Rows Removed by Join Filter: 3813025380
-> Index Scan using foxtrot on echo_two lima (cost=1.720..5.590 rows=1 width=185) …Run Code Online (Sandbox Code Playgroud) postgresql ×1