觉得数据库不重要人 能找到高薪工作?

2021-04-07 22:44:09 +08:00
 Ptu2sha
原生 SQL 不怎么会写 只会框架 ORM 操作
数据库自带的功能不会用 都要代码循环处理
在程序员界这个普遍吗
7855 次点击
所在节点    程序员
74 条回复
joyhub2140
2021-04-08 10:55:55 +08:00
别说后端,当年做客户端的,sqlite 和 SQL 还是要掌握的,现在连客户端都张口就来 ORM 了。
xcstream
2021-04-08 11:20:13 +08:00
不会写程序也能高薪的
bleepbloop
2021-04-08 11:29:10 +08:00
@mhycy 不懂就问:为什么存储过程尽可能不用?

用 ORM 的话开发工程师就可以按自己的意愿操作数据库了吧? DBA 使用存储过程给开发提供统一接口,不仅可以更方便保障 SQL 质量,也可以做好权限分离,不是更好么?
markgor
2021-04-08 11:36:44 +08:00
简单的项目会用 ORM,
复杂的项目还没上过 ORM,
单纯表就几十张以上了,各种链表各种跨库不知道在 ORM 里怎么实现......
复杂项目习惯开启 sql 的 slowlog,根据 slowlog 定位,然后索引能解决的索引解决,
索引解决不了的改 SQL 语句解决,还是解决不了的就改逻辑...这时候用 ORM 怎么解决?
egen
2021-04-08 11:38:07 +08:00
还是看企业规模吧,小公司无所谓,没啥数据量,ORM 多快好省,数据上规模了,需要考虑的东西就多了
Lemeng
2021-04-08 11:41:17 +08:00
其实很重要
markgor
2021-04-08 11:45:46 +08:00
@2379920898 #27
原生写 SQL 就被注入,这明显是技术问题,为何因此而觉得 LOW 呢?自己技术学不好反怪原生 LOW ?搞不懂这种想法...
另外你说到 PHP,原生的 PDO 加绑定不是一件很简单的事情吗?连 PDO 都没接触过的话就当我没说吧
最后框架有问题或和业务有冲突,解决或调试的途径不是应该查框架源码进行处理吗?能不改框架尽量不改框架,但前提是你要能看懂框架吧?
没人抵制框架,但框架反而抵制原生.....这真的想不明白....................

@bleepbloop
因为存储过程是直接消耗数据库所在机器的性能,当项目足够膨大,业务性能不足可以拆解服务分布处理,而数据库的存储函数是只能堆硬件。如果涉及执行时间过久的,整个 DB 都拉跨了,但是业务上处理可以进行熔断。
jzmws
2021-04-08 11:46:54 +08:00
见过做统计的 ,查询所有数据 然后再 java 里面一条条的加!!

那些口口声声说不做 crud 的人, 连基本的 sql 都不会写!

要想做复杂业务的 sql 是必备技能
markgor
2021-04-08 11:50:53 +08:00
@bleepbloop #43 漏了说,好像是阿里那传出来的建议...
除了上面说的,还有维护性移植性不好。
所以不建议使用。
tzl
2021-04-08 12:03:38 +08:00
复杂的 sql 还是有必要的,但有时写多了就感觉有些业务就直接交给数据库了....目前就职的公司也是,不写 sql,多条数据插入都是 for 循环
mhycy
2021-04-08 12:04:05 +08:00
@markgor
@bleepbloop

再加一条,业务与数据库强耦合,不易变更与测试
再加上存储过程并不支持数组,map 之类的东西,写起来灵活性不高(虽说可以用临时表实现)
tairan2006
2021-04-08 12:20:11 +08:00
你这局限在搞 web curd 的人,好多人干的活和这玩意儿一点关系都没有

当然对这一小撮人,不会写 sql 确实很挫就是了。。

你用 greenplum 、clickhouse 也要写 sql 啊…当然存储过程这种就算了,复杂业务都是一堆组件。
yaaaaaak
2021-04-08 12:24:26 +08:00
看标题还以为是卖数据库课程的(不
rodrick
2021-04-08 12:36:07 +08:00
制造业大量的 batch,存储过程跑起来的太多了,这种都是看应用场景的
xsqfjys
2021-04-08 13:06:05 +08:00
oracle sql 语言官方文档两千多页,这谁顶得住啊
guyeu
2021-04-08 13:11:29 +08:00
请先定义数据库; NoSQL 算不算、SQLite 算不算
请先定义重要:大多数客户端都用不到传统意义上的数据库;
请先定义高薪:大多数城市里最垃圾的码农的薪资就能算得上高薪了;
bleepbloop
2021-04-08 13:11:46 +08:00
@markgor

存储过程也能拆吧,DBA 和后端配合好就行啊。至于你说的业务代码可以熔断,使用存储过程的时候业务代码为什么做不到熔断?我不明白。

阿里说的不一定就是对的吧?维护移植性不好这一点我也没看明白。


@mhycy

为什么会强耦合? DBA 提供存储过程接口给后段调用啊
monsterxx03
2021-04-08 13:17:21 +08:00
现在 v 站上的讨论真是鸡同鸭讲, 连个前提都没有, RDBMS 和 NoSQL 是一回事, OLTP 和 OLAP 是另一回事, 互联网业务里的 SQL 和 ERP 系统里的 SQL 又是另另一回事.
bleepbloop
2021-04-08 13:23:59 +08:00
zjsxwc
2021-04-08 13:33:48 +08:00
mysql 也就在 insert/select/update/delete 这四个基本增删改查上,多了 group by having 和 * join 两种操作,花个半小时就会用了,连半小时都不愿意,emmm

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

https://www.v2ex.com/t/768867

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

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

© 2021 V2EX