
1 noreplay 2020-02-27 15:59:24 +08:00 个人倾向于第一种。 |
2 waising 2020-02-27 16:02:01 +08:00 via iPhone 个人倾向于第二种,但实际情况是第一种 |
3 zuoakang 2020-02-27 16:03:31 +08:00 还好不是多库查询,多表多话,看执行速度吧,如果速度慢,可以考虑中间表吧 |
4 wd 2020-02-27 16:07:37 +08:00 via iPhone 取决于实际情况... |
5 luoyou1014 2020-02-27 16:15:31 +08:00 没有性能压力,第一种和第二种没区别,用 3 就浪费工作量 有性能压力,第一种绝对不能用,会直接拖垮数据库,第二种仅能使用于一种情况,就是这个语句不是经常执行的,只是偶尔执行一下,例如在后台查看一些统计数据。 有性能压力,且查询量大,只能采用第三种办法。 |
6 zhaorunze 2020-02-27 16:21:29 +08:00 4.定时任务收集数据 |
7 leon0903 &bsp; 2020-02-27 16:49:24 +08:00 有分页要求的话 只能用第一种吧。 |
8 bbbai 2020-02-27 17:16:06 +08:00 倾向第一种。数据量过大的 实时性要求不高倾向于 #6 提出的第四种 |
9 akira 2020-02-27 17:17:16 +08:00 2 3 |
10 newtype0092 2020-02-27 17:18:32 +08:00 这几种方式都有存在的必要,没有一种方法能通吃所有场景。 |
11 laojiaqing 2020-02-27 17:20:48 +08:00 定时任务就不会有性能压力? |
12 zhuangjia 2020-02-27 17:22:54 +08:00 倾向于第一种,实际第二种 目的是方便理解和修改…… |
13 Ministor 2020-02-27 17:44:16 +08:00 索引啊 es 之类的 |
14 silvermuse 2020-02-27 17:45:26 +08:00 从不用联表查询。。多数用二,请求频繁性能压力特别大的用三。 联表查询量稍微上来一点点就不行了,性能实在太差。 |
15 wzwwzw 2020-02-27 17:47:30 +08:00 不要求实时,用定时任务执行第一种,把结果存缓存。实时第二种。 |
16 loryyang 2020-02-27 19:43:28 +08:00 看你多复杂了,太复杂,用 1 的方法有时候会很慢,需要做专门的优化。如果速度 OK 的话,1 挺好的。为了省事,就 2 好了 另外,2 的查询还会涉及到原子性问题 |
17 loryyang 2020-02-27 19:44:30 +08:00 不少引擎对这种联合查询场景有专门的优化,不过不是万能的,稍微复杂一些就可能无法优化,而导致速度变得很慢 |
18 optional 2020-02-27 19:45:44 +08:00 没什么好争议的: OLAP 场景 第一种,OLTP 场景 第二第三种。 |
19 opengps 2020-02-27 20:25:42 +08:00 via Android 为了程序简单选择 1 为了数据库能扩容,选择 2 |
20 zivyou 2020-02-27 20:30:01 +08:00 个人第一种用的多些。主要写起来优雅一些,性能要求也没那么高 |
21 reus 2020-02-28 09:51:27 +08:00 如果你不是用 mysql5.x,那没必要用 2、3。 |
22 doudou1523102 2020-02-28 10:46:00 +08:00 觉得不用修改第一种,需要修改第二种,实际上第一种修改可能一个 sql 看一上午,要分段拿出 sql 看,很费时间 |