php - mysql查詢最佳化問題?
大家讲道理
大家讲道理 2017-05-16 13:08:33
0
2
496
select count(*) as aggregate from `call_records` where (`CallType` = 'dialout' and `CalledNo` = '12345678910');

這條查詢如何優化?前提是不能建立索引,因為這張表裡面已經有好幾個索引了,有可能導致鎖定表。

大家讲道理
大家讲道理

光阴似箭催人老,日月如移越少年。

全部回覆(2)
给我你的怀抱

是不是熱數據,不是熱數據就搞個腳本定時跑把統計的count存到另一個張統計表裡去。
熱資料的話你看看之前建的索引能不能搞成組合索引,因為B樹從左開始,你建個(a,b,c)的,a和a,b和a,b,c都能用了,程式碼層的查詢函數注意欄位順序。

PHPzhong

把索引重新優化下吧,單一索引建的太多了,就想辦法建個聯合索引。假如這個統計不需要即時性,就用md5(sql語句)當key,把結果當作值,存放到快取裡(redis)。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!