我有這樣的查詢..優化查詢(MySQL和PHP)
select slno
from `invoice_master`
where slno NOT IN (SELECT DISTINCT Inv_slno from `invoice_refresh`)
我有超過1,40,000記錄兩個表中(invoice_master
,invoice_refresh
)
此查詢到地獄沒有時間執行。 :(
這是鏈接,我的解釋查詢
幫我找出備用查詢..
我有這樣的查詢..優化查詢(MySQL和PHP)
select slno
from `invoice_master`
where slno NOT IN (SELECT DISTINCT Inv_slno from `invoice_refresh`)
我有超過1,40,000記錄兩個表中(invoice_master
,invoice_refresh
)
此查詢到地獄沒有時間執行。 :(
這是鏈接,我的解釋查詢
幫我找出備用查詢..
嘗試刪除NOT IS CLAUSE
已將其刪除,並使用了一個LEFT JOIN
select
slno
from invoice_master
LEFT JOIN invoice_refresh on (Inv_slno = slno)
where Inv_slno is null
我建議你使用LEFT OUTER JOIN
:
SELECT m.slno
FROM `invoice_master` m
LEFT OUTER JOIN `invoice_refresh` r ON m.slno = r.Inv_slno
WHERE r.Inv_slno IS NULL
那麼,有沒有在'invoice_refresh'表的任何索引,特別是在''Inv_slno列?如果沒有,那麼考慮創建一個 –
如果您不提供給我們這個數據庫結構的片段,我們無法幫助您。另外關於你在哪裏設置idexes的信息會很有幫助。從invoice_refresh和invoice_master slno – ex3v
主密鑰也具有上slno –