

为什么很多人连基础的 SQL 都写不好,却开口闭口就是缓存架构分布式?
source link: https://www.v2ex.com/t/799533
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

说下情况,我们公司同个部门的好几个同事,连个基础的 SQL 都写不好,代码中一堆数据库 N+1 的问题,连个 WHERE IN 查询都不会用,涉及到批量查询,都是遍历然后一条条的去跑 SQL,同一个方法重复查询了好几次,数据库设计更是不行,外键都是用逗号分隔拼接成字符串,然后保存到主表上。
正因为 SQL 写的烂,所以接口性能很差劲,但是他们好像都不在意这些 IO 方面的优化,整天在想着怎么优化语言性能,比如反射、JSON 序列化、语言基础库的性能;要么就是上集群、加缓存,然后又没有任何设计模式,直接业务代码中强硬加入缓存读写,就算是缓存也是先从缓存读出数据,然后遍历一条条去数据库再查出来,性能更差了
其实整体项目量不大,好好写好 SQL,基本上能搞定 90% 的性能问题了,大部分的开发经验也都好几年了,不至于这种基础知识点不懂,可为啥就是不重视 SQL 性能
qrobot 10 小时 59 分钟前 1
```
正因为 SQL 写的烂,所以接口性能很差劲,但是他们好像都不在意这些 IO 方面的优化,整天在想着怎么优化语言性能,比如反射、JSON 序列化、语言基础库的性能;要么就是上集群、加缓存,然后又没有任何设计模式,直接业务代码中强硬加入缓存读写,就算是缓存也是先从缓存读出数据,然后遍历一条条去数据库再查出来,性能更差了
```
我不清楚你们的项目结构,不过 IO 在怎么优化是有瓶颈的,为了提高命中缓存, 我觉得不用 in 和 left join 是最好的
xinJang 10 小时 35 分钟前
flybluewolf 10 小时 35 分钟前
followyourheart 10 小时 21 分钟前
l00t 10 小时 13 分钟前 1
skinny 10 小时 10 分钟前
连那些云服务大厂都一个鸟样,吹起来什么异地灾备、自动化、高可用有多少个 9,崩起来就 N 小时还全面崩
dream4ever 10 小时 1 分钟前
zhouyou457 9 小时 55 分钟前
手上的项目有 n 多一句 sql 完成的功能,什么先查出 id 再 in 查询,各种拼接子查询,结果合并计算、标准时间格式化成前端格式字符串,然后结果集一律字符串返回,连封装都懒得写,直接 Map<String,String>
wh469012917 9 小时 51 分钟前
zgcwkj 9 小时 42 分钟前
ytmsdy 9 小时 39 分钟前
ytmsdy 9 小时 29 分钟前
从另外一个方面来看,越来越多非科班出身,直接在培训班速成出来的开发人员,虽然看着很唬人,但是涉及到一些具体算法,数据库设计,性能分析就完全抓瞎了。
公司的管理层也只管功能上线能用就好了,技术层面的代码实现,业务逻辑处理完全不会!
Brentwans 9 小时 29 分钟前
解决问题有的方法简单,有复杂的,有些看似简单实际运维复杂,有的还有利益关系。甚至有时候刚好研发同学最近看了某些工具或者方案,于是就用了。
我现在觉得最终能够稳定解决问题的方案,至少不算差,至于其他的不太重要了。
Cbdy 9 小时 25 分钟前 via Android
事实是没用,所以写得烂
自己的项目当然可以好好写,但将心比心,大多数人都是外出务工的农民工,能跑通过验收老板能接受就行了,何况还有 996 、PUA 、拖欠工资、251 能大山压着呢
至于分布式集群、消息队列这种听起来高大上的东西当然要背得头头是道,这样才能提高身价,让老板满意,让面试官满意
Veneris 9 小时 6 分钟前
复杂 sql 可维护性差,绝大部分公司的绝大部分业务,都不会对 sql 如此苛刻,命中索引足够了。
但是人员的流动却是常事,业务逻辑都在代码里会更好上手,随便找个实习生也能接手代码。
项目的平稳发展比所谓的写好 sql 更重要。
lap510200 8 小时 58 分钟前
Macolor21 8 小时 49 分钟前
wh469012917 8 小时 48 分钟前
Cbdy 8 小时 21 分钟前 via Android
我不是说这是对的实践,但是业界事实,毕竟成年人的世界没有对错,只有打工
luoyelusheng 8 小时 14 分钟前
wellsc 2 小时 30 分钟前
Recommend
-
100
提到《精灵宝可梦》,大家一定会想起那个用可爱征服世界的皮卡丘,现在《精灵宝可梦》最新的剧场版正在海外上映中,很多粉丝也是专门到场观看。在剧场版中却出现了让现场观众惊叫的场面,原因就是皮卡丘做了一件让所有粉丝都没想到的事情,有网友将这段视频上传到...
-
42
程序员 - @hansonwang99 - 我不太喜欢写的很繁杂,所以精简到 1 页,正中命题不就行了吗,好像有些 HR 说写太少了,那么 V 友们一般写多少呢?
-
19
如果你之前没用过进度条,八成是觉得它会增加不必要的复杂性或者很难维护,其实不然。要加一个进度条其实只需要几行代码。在这几行代码中,我们可以看看...
-
7
熟蛋返生作者称自个很委屈:遗书都写好了 确实做到了 2021年04月28日 10:36 9655 次阅读 稿源:快科技 12 条评论
-
7
为什么我鼓励所有人都写代码 Drafts and thoughts about tech from tbwork. Contact me at: 本...
-
18
关键词都写不好,还说自己会做亚马逊?-跨境头条-AMZ123亚马逊导航-跨境电商出海门户 关键词都写不好,还说自己会做亚马逊?...
-
8
大家好,我是良许。计算机专业的小伙伴,在学校期间一定学过 C 语言。它是众多高级语言的鼻祖,深入学习这门语言会对计算机原理、操作系统、内存管理等等底层相关的知识会有更深入的了解,所以我在直播的时候,多次强调大家一定要好好学习这门语言。...
-
3
申通老板娘和她的3个男人,再牛逼的编剧都写不出这个剧本 作者:大阳“有时候你不逼自己一把,命运就会逼你一...
-
9
别担心QLC颗粒SSD不可靠 厂商:99%用户都写不死 2022-11-09 20:32 出处/作者:快科技 整合编辑:佚名 0
-
5
大家好,我是王有志。关注王有志,一起聊技术,聊游戏,从北漂生活谈到国际风云。 之前我们已经通过3篇文章由浅到深的分析了synchronized的用法和原理: 还有一篇是关于并发控制中常用锁的设计《
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK