这几种方式:
1、将逻辑一次性通过 SQL 处理完
2、在代码中处理,分几次请求数据库
3、在代码中处理,数据库加冗余字段,减少请求数据库的次数
大家一般倾向哪一种,或者有没有更好的方式
1、将逻辑一次性通过 SQL 处理完
2、在代码中处理,分几次请求数据库
3、在代码中处理,数据库加冗余字段,减少请求数据库的次数
大家一般倾向哪一种,或者有没有更好的方式
|
noreplayFeb 27, 2020
1
个人倾向于第一种。
|
|
waisingFeb 27, 2020 via iPhone
2
个人倾向于第二种,但实际情况是第一种
|
|
zuoakangFeb 27, 2020
3
还好不是多库查询,多表多话,看执行速度吧,如果速度慢,可以考虑中间表吧
|
|
wdFeb 27, 2020 via iPhone
4
取决于实际情况...
|
|
5
没有性能压力,第一种和第二种没区别,用 3 就浪费工作量
有性能压力,第一种绝对不能用,会直接拖垮数据库,第二种仅能使用于一种情况,就是这个语句不是经常执行的,只是偶尔执行一下,例如在后台查看一些统计数据。 有性能压力,且查询量大,只能采用第三种办法。 |
|
zhaorunzeFeb 27, 2020
6
4.定时任务收集数据
|
|
leon0903Feb 27, 2020
7
有分页要求的话 只能用第一种吧。
|
|
bbbaiFeb 27, 2020
8
倾向第一种。数据量过大的 实时性要求不高倾向于 #6 提出的第四种
|
|
akiraFeb 27, 2020
9
2 3
|
|
newtype0092Feb 27, 2020
10
这几种方式都有存在的必要,没有一种方法能通吃所有场景。
|
|
laojiaqingFeb 27, 2020
11
定时任务就不会有性能压力?
|
|
zhuangjiaFeb 27, 2020
12
倾向于第一种,实际第二种
目的是方便理解和修改…… |
|
MinistorFeb 27, 2020
13
索引啊 es 之类的
|
|
14
从不用联表查询。。多数用二,请求频繁性能压力特别大的用三。
联表查询量稍微上来一点点就不行了,性能实在太差。 |
|
wzwwzwFeb 27, 2020
15
不要求实时,用定时任务执行第一种,把结果存缓存。实时第二种。
|
|
loryyangFeb 27, 2020
16
看你多复杂了,太复杂,用 1 的方法有时候会很慢,需要做专门的优化。如果速度 OK 的话,1 挺好的。为了省事,就 2 好了
另外,2 的查询还会涉及到原子性问题 |
|
loryyangFeb 27, 2020
17
不少引擎对这种联合查询场景有专门的优化,不过不是万能的,稍微复杂一些就可能无法优化,而导致速度变得很慢
|
|
optionalFeb 27, 2020
18
没什么好争议的:
OLAP 场景 第一种,OLTP 场景 第二第三种。 |
|
opengpsFeb 27, 2020 via Android
19
为了程序简单选择 1
为了数据库能扩容,选择 2 |
|
zivyouFeb 27, 2020
20
个人第一种用的多些。主要写起来优雅一些,性能要求也没那么高
|
|
reusFeb 28, 2020
21
如果你不是用 mysql5.x,那没必要用 2、3。
|
|
doudou1523102Feb 28, 2020
22
觉得不用修改第一种,需要修改第二种,实际上第一种修改可能一个 sql 看一上午,要分段拿出 sql 看,很费时间
|