在PolarDB中,为什么 a表实际上一条joint条件都不符合,但rows却是全表行数?
在PolarDB中请教一个索引问题,为什么 a表实际上一条joint条件都不符合,但rows却是全表行数?explain
select /+join_prefix(a) /
a.billid
FROM erp_bill_index a
left JOIN erp_bill_index_ext AS ebie
ON a.billid=ebie.sourcebillid and ebie.profileid=200005518 and ebie.sourcebillid>0 -- 待确认的预收款单
where a.profileid=200005518 AND a.billdate >= '2023-05-25' AND a.billdate < '2024-01-03' ;
在PolarDB中,如果一条join条件都不符合,但rows却是全表行数,可能是因为查询条件过于宽松,导致所有行都被匹配到了。在这种情况下,可以使用EXPLAIN命令来查看查询的执行计划,以确定是否存在性能问题。
根据您提供的查询语句,可以添加EXPLAIN关键字来查看执行计划:
EXPLAIN
SELECT /+join_prefix(a) /
a.billid
FROM erp_bill_index a
LEFT JOIN erp_bill_index_ext AS ebie
ON a.billid=ebie.sourcebillid and ebie.profileid=200005518 and ebie.sourcebillid>0 -- 待确认的预收款单
WHERE a.profileid=200005518 AND a.billdate >= '2023-05-25' AND a.billdate < '2024-01-03';
通过查看执行计划,可以分析查询的性能瓶颈,并针对性地进行优化。