我需要優化MySQL查詢。我有一張賭桌,賭注少於100.000條記錄。我需要顯示當月的所有記錄。Mysql優化查詢日期
SELECT betting.id
FROM betting, members
WHERE members.status = 1
and members.id = betting.user
and betting.date between '2016-09-01' and '2016-09-30'
and betting.status = 1
and betting.type = 1;
當我嘗試解釋命令:
SIMPLE betting range user,date,type,type_2 type_2 7 NULL 4966 Using where
SIMPLE members eq_ref PRIMARY PRIMARY 4 betting.user 1 Using where
是否有任何機會,以減少對數據庫的搜索?問題是顯示此結果的頁面太頻繁地被調用,並且會導致大量的CPU成本。不幸的是,我無法緩存結果,因爲它們需要生存。有任何想法嗎 ?
您是否在任何相關列上都有索引 – RiggsFolly
您可以在mysql中使用緩存依賴關係。這意味着你將把結果保存在緩存中,直到表更改。 –
@RiggsFolly是的,我有一個索引(類型,結果,狀態) –