我们公司不让开发使用 join 包括 left join,不让用子查询,合理吗?

2020-06-03 16:47:10 +08:00
 hackingwu

我们公司规范不让开发使用 join 包括 left join,也不让用子查询,原因是为了减轻 DB 的压力,这样就导致我们一个多表联合查询的业务就要拆分多条语句,导致无效的请求和数据传输。我们业务是微服务架构。 我觉得是很不合理的。减轻了 DB parse 的压力,却带来了处理请求和数据传输的压力。 大家觉得呢?是我错了吗?

33868 次点击
所在节点    程序员
231 条回复
594duck
2020-06-06 06:15:36 +08:00
@sonice 你也说了你是 Oracle,人家是 Mysql 你让 Mysql 单表千万级数据,不用多,10 个列好了,直接废了。
594duck
2020-06-06 06:16:47 +08:00
@Hanggi 老哥问的好,不用 Join 还用什么关系数据库。肯定是他们微服务拆的太散了,导致随便 Join 一下好多表
Judoon
2020-06-06 10:44:37 +08:00
Judoon
2020-06-06 10:45:57 +08:00
oschina 上的帖子看起来这也是你发的?为了引战么,一个论坛不够,多发几个?或者为了找认同感
hackingwu
2020-06-08 11:10:17 +08:00
@Judoon 。。。。不知道是谁复制黏贴发的,我已经冲大家的回复里找到自己的答案了
pythonee
2020-06-19 20:16:52 +08:00
记得几年前,去 O 和 KV 数据库流行的时候,互联网很多这些实践
需要根据业务评估,随着不同的业务阶段,再具体做选择吧
594duck
2020-07-09 19:53:47 +08:00
@sonice 又来了,开始春秋笔法啦,我们在讲的是 MYSQL 单表几亿。ORACLE,几亿不是很正常。RAC 我接触过天玑科技,国产的。

昨天还是前天还有个小朋友和我说 1G 内存跑了 1 万连接并发的 HTTP 网站。 我说吹牛逼,他说我水平不好,二次元斗图乱发,我和他推理半天,他发我一份 NET 优化表,说是优化的。我说 1G 内存再优化也优化不出 C10K 问题。

最后他给出一个域名,我一看 cloudflare,再一看页面,静态就三个字。我问他你这 CDN 缓存 和你 1G 内存,和你的 NET 优化表有什么关联么?和你的 C10K 有什么关联么?

又是几个表情

这就是春秋笔法。
594duck
2020-07-09 19:55:33 +08:00
@sonice 噢,我回复过你啦。抱歉,我给你点个 LIKE 补偿
yogapants
2021-12-14 22:09:29 +08:00
@sdwgyzyxy 大佬想请教一下分库分表之后如果使用了数据库中间件的话,各种聚合统计、连表操作是不是最好不要用了。因为既然分库分表了说明应该数据量庞大已经完全拆成微服务了,相应的数据库服务器也应该独立开来。再以传统的方式的话意义不大。
sdwgyzyxy
2021-12-15 11:58:41 +08:00
@yogapants 哈哈,第一次被人称为大佬,其实我就是一个菜鸟,并没有什么经验,就是根据我们项目发的一条感悟,你看看就行了,我经历过拆分 join 的痛,开发人员无视业务表隔离,比如 join 用户表、订单表、流水表,明显的数据表名称前缀都不一样就不要强行 join 了。
ZX16815
2023-11-09 09:38:17 +08:00
数据传输一般走内网,传输压力可以忽略不计。
如果能保证,被 join 的表,将来永远不会被分库分表的话,可以 join 。但这个谁也保证不了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/678312

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX