select count(*) as aggregate from `call_records` where (`CallType` = 'dialout' and `CalledNo` = '12345678910');
這條查詢?nèi)绾蝺?yōu)化?前提是不能建立索引,因為這張表里面已經(jīng)有好幾個索引了,有可能導(dǎo)致鎖表。
2 回答

喵喵時光機(jī)
TA貢獻(xiàn)1846條經(jīng)驗 獲得超7個贊
是不是熱數(shù)據(jù),不是熱數(shù)據(jù)就搞個腳本定時跑把統(tǒng)計的count存到另一個張統(tǒng)計表里去。
熱數(shù)據(jù)的話你看看之前建的索引能不能搞成組合索引,因為B樹從左開始,你建個(a,b,c)的,a和a,b和a,b,c都能用了,代碼層的查詢函數(shù)注意字段順序。

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗 獲得超9個贊
把索引重新優(yōu)化下吧,單個索引建的太多了,就想辦法建個聯(lián)合索引。假如這個統(tǒng)計不需要實時性,就用md5(sql語句)作為key,把結(jié)果作為值,存放到緩存里(redis)。
添加回答
舉報
0/150
提交
取消