我的系统中有一个非常基本的查询,但在查询中添加一个额外的内部联接采用执行时间形式(0.02 秒到 6.0 秒)。在我看来,我在连接列上缺少一个索引,但确实存在一个。下面是explain plan
两个查询中的一个。到底是怎么回事?
查询速度更快......
带有一个附加连接的慢查询(table ='bd')
这是sql...
SELECT DISTINCT rsb.id
FROM report_session_bill rsb
INNER JOIN bill b
ON b.id = rsb.bill_id
INNER JOIN bill_master bm
ON bm.id = b.bill_master_id
INNER JOIN meter m
ON m.id = b.meter_id
-- slow join below...
INNER JOIN building bd
ON bd.id = m.building_id
WHERE rsb.report_session_id = 20693
表统计...
- report_session_bill:1,000 - 10,000 行,每小时删除一次
- 账单:100 万行
- bill_master:750k 行
- 米:10k行
- 建筑:7k行