为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

一只斗牛犬 2019-03-10 14:47:22
如题,如果做一个统计数据的SQL查询,查询的表来自四面八方,又有不同的条件限制,如果在一条SQL语句中,高效实现多个select count,这里只对SQL做考虑,比方举个例子,sql如下(这里数据超级少)像这种SQL,语句,该如何优化,或者说是简化SQL,这是部分sql,从例子中看的出来,还有好几个类别,平常写的大多是业务,技术型代码一直尚未研究,请各位大佬提点意见注:count(X)中的 X 均为该表自增长主键ID, MySQL版本为8.0
查看完整描述

2 回答

?
慕的地10843

TA贡献1785条经验 获得超8个赞

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

查看完整回答
反对 回复 2019-03-10
?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

如果没性能问题,你那没啥问题,当然上缓存就是了,
还有用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' 
`

然后再业务中 拼接返回的数组.


查看完整回答
反对 回复 2019-03-10
  • 2 回答
  • 0 关注
  • 743 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信