如題,如果做一個統(tǒng)計數(shù)據(jù)的SQL查詢,查詢的表來自四面八方,又有不同的條件限制,如果在一條SQL語句中,高效實現(xiàn)多個select count,這里只對SQL做考慮,比方舉個例子,sql如下(這里數(shù)據(jù)超級少)像這種SQL,語句,該如何優(yōu)化,或者說是簡化SQL,這是部分sql,從例子中看的出來,還有好幾個類別,平常寫的大多是業(yè)務(wù),技術(shù)型代碼一直尚未研究,請各位大佬提點意見注:count(X)中的 X 均為該表自增長主鍵ID, MySQL版本為8.0
2 回答

慕的地10843
TA貢獻1785條經(jīng)驗 獲得超8個贊
如果是同一個表的話可以考慮用group by,不同表的話沒什么好辦法呢
PS:MYSQL中 count(*)的效率要比count(字段)高哦

尚方寶劍之說
TA貢獻1788條經(jīng)驗 獲得超4個贊
如果沒性能問題,你那沒啥問題,當(dāng)然上緩存就是了,
還有用explain 分析下
你這子查詢也可以拆分2條sql
`
select count(*),type as cnt fromo article where openID in =43 group by type
select count(*) from diary where openId=43 and type='public'
`
然后再業(yè)務(wù)中 拼接返回的數(shù)組.
添加回答
舉報
0/150
提交
取消