哪种方式更好

我现在要算下好评率,有俩种方式。
1.俩条sql,第一次count评价表所有数据,第二次以status=2作为条件count出好评个数,俩者相除。
2.一条sql,从评价表得出所有状态的数据,count总数,再count 为2的个数。
这俩种方式哪一个更好

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 6
CrazyZard

看你的数据量 如果是几万条的话 都无所谓

4年前 评论

选第一种

第二种 疯了

不继续吐槽了…

4年前 评论

我试了一下你这个应该能用一个sql解决问题

select 
count(1) as total,
(select count(1) from table where status = 2) as count,(select count(1) from table where status = 2) / count(1) * 100 as haopinglv
from
     table;
4年前 评论

如果数据量不大,未来可预期的数据规模也不会超过单库能处理的极限,那么把一些压力放到数据库端处理是合适的,因为写起来简单,效率也不差。但是,关系数据库的水平扩展是极为困难的。如果可预期的未来,数据量增加很快,或者业务压力大增,这个时候瓶颈就全压在数据库上了,没有很好的办法解决,就只能垂直扩展数据库,比如增加数据库机器的配置。保持数据库的简单,把业务逻辑前移,放到应用中,就能把压力转到应用服务器,而应用服务器的水平扩展要简单得多,在无状态的情况下,服务能力不够,简单的加机器就好。

4年前 评论
Makia98

把逻辑拆分开吧,不要写成一条 sql

一条 sql 一个逻辑,代码更直观好理解,命中索引就更好了

4年前 评论

明显第一条好, simple is best

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!