哪种方式更好

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

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 6
CrazyZard

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

3年前 评论

选第一种

第二种 疯了

不继续吐槽了…

3年前 评论

我试了一下你这个应该能用一个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;
3年前 评论

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

3年前 评论
Makia98

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

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

3年前 评论

明显第一条好, simple is best

3年前 评论

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