我有一個表,其中有近2,000,000記錄。 我有一個列(crmid),它是該表中的一個varchar。 我寫了一個查詢 說,需要微調我的mysql查詢有一個索引varchar列
Select column1, column2,..... from table where crmid = ?
的價值來自前端。以前它工作正常,但現在它從前端得到超時。 然後我在那個專欄上使用了一個索引,這對我來說幫助不大。 索引編制之後,我解釋了查詢,它又遍歷180萬行也使用索引。
請幫我調整此查詢。
注意:這不是實際的查詢,它只是最簡單的形式。實際查詢中有許多連接。
EDITED :: 完整查詢
select column1
, column2
from table1 a
inner join appointmentstatusmst st
on st.entity_id = a.shdstatuslviid
inner join hlcclientdetails
on a.shdclientid = hlcclientdetails.cldregno
and a.shdclientdcnid = hlcclientdetails.clddcnid
where hlcclientdetails.cldunifiedcrmid = ?
解釋輸出爲
如果還有另一種調整此查詢的方法,即使使用索引也不受歡迎。 – 2012-01-03 12:11:09
發佈整個查詢,或者至少確切地說明如何使用where子句中的'crmid'列。順便說一句,200萬行被認爲是「小到中等」大小的表 – Bohemian 2012-01-03 12:16:32
請發表您的查詢。其他方面不可能準確找到。 – 2012-01-03 12:18:50