做一个统计数据的接口有多个select count,MySQL 怎么写才能算是高效的接口

如题,如果做一个统计数据的SQL查询,查询的表来自四面八方,又有不同的条件限制,如果在一条SQL语句中,高效实现多个select count,这里只对SQL做考虑,比方举个例子,sql如下(这里数据超级少)

https://img3.mukewang.com/5c84b30c00012b9907670248.jpg

像这种SQL,语句,该如何优化,或者说是简化SQL,这是部分sql,从例子中看的出来,还有好几个类别,平常写的大多是业务,技术型代码一直尚未研究,请各位大佬提点意见

注:count(X)中的 X 均为该表自增长主键ID, MySQL版本为8.0


一只斗牛犬
浏览 744回答 2
2回答

慕的地10843

如果是同一个表的话可以考虑用group by,不同表的话没什么好办法呢PS:MYSQL中 count(*)的效率要比count(字段)高哦

尚方宝剑之说

如果没性能问题,你那没啥问题,当然上缓存就是了,还有用explain 分析下 你这子查询也可以拆分2条sql`select count(*),type as cnt fromo article where openID in =43 group by typeselect count(*) from diary where openId=43 and type='public' `然后再业务中 拼接返回的数组.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

MySQL