存储过程真的是洪水猛兽吗?

127 天前
 liuidetmks

很多开发者一提到 SQL 就“谈此色变”,觉得难以调试、难以定位 bug
最后就是一句话,就是这个东西碰不得,是邪教


存储过程这个东西存在这么久,不可能一无是处吧

有没有可能,像 TypeScript 转译为 JavaScript 一样,有一种高级语言可以:

14532 次点击
所在节点    数据库
119 条回复
lujiaxing
127 天前
@tanhui2333 这个不是开历史倒车. 是有些场景下只有存储过程合适. 在大并发高一致性高实时性的场景. 比如银行. 你不可能说这边支付完了过了好几秒余额才减掉吧.
Rickkkkkkk
127 天前
你都招不到会用这个东西的人。
idragonet
127 天前
我们 MES 都是存储过程,6-7K 个。 无所谓了,职场都有工具人。
frankies
127 天前
看行业的,比如银行、ERP 系统、财务管理系统这些,存储过程是大量使用的。而互联网行业,我认为如无必要坚决不使用存储过程。
xiaomushen
127 天前
你自己写的时候,绝对不会认为是洪水猛兽。
等接手的人维护修改时候,绝对会喷这是洪水猛兽

所以,是不是洪水猛兽,要看站在谁的角度
leonhao
127 天前
数据量大,业务逻辑复杂,存储过程非常好用
yangzzzzzz
127 天前
之前公司的架构师设计的前端直接掉存储过程,设想非常好,实际应用中 一个简单的见面掉几十上百个过程 ,前端人都麻了
ericguo
127 天前
到 2025 年为止,我还找不到一个编程语言,除了存储过程,能够在 0.5 秒内改变系统的逻辑,不用发布,不用测试,走任何流程,不留下任何记录,而且门槛极低。

如果你认为上面我说的全是优点,那显然应该用。
xiaomushen
127 天前
@ericguo 数据库可以开 Audit ,不可能不留任何记录
xiaomushen
127 天前
@yangzzzzzz 类似的行为艺术架构师,还是有想法的:核心人员无法被裁
imnpc
127 天前
没有专职 DBA ,不要用存储过程
lujiaxing
127 天前
@imnpc 不一定 好多 30 多岁的老开发, 对数据库的理解可能比 DBA 还深刻.
shangfabao
127 天前
你要是存储过程文档很详细,用就用了,前提有 DBA
QlanQ
127 天前
以前 维护 ERP 的时候,就是前端用的那种 我都忘记叫什么了,就是前端直接调用数据库的存储过程
整个系统主要是依赖存储过程

维护、升级特别复杂,数据库绑定,绑定到版本,数据库如果语法有修改,存储过程都要重来

现在 接口系统,都是 分布式、数据业务分离,存储过程就不合适了
catamaran
127 天前
存储过程的一个问题是 sql 没有普通的高级语言语法丰富,导致阅读书写代码要困难一些,然后 debug 比较困难,我知道 sql server 的 sp 是可以 debug 的,不知道 oracle 行不行,mysql 是不行的。
ymy3232
127 天前
成本低,不用招专门的大数据开发,我们之前一天百亿条数据,用 8 个 mysql 来跑存储过程,成本比用数据湖低的多
Nanmi
127 天前
曾经刚毕业的时候,在一家做银行软件的公司,那个时候用的也是存储过程,阅读起来极其费劲,维护特别困难,当然对于高手来说,也不是啥事儿,但是如果是对于初入职场的人来说,去维护一些边角料的功能你都会觉得很恶心🤢。

记得后面离职 1 年多的时候时候,这套核心系统终于被彻底重构了,存储过程的那部分逻辑全部用 java 重写了。
bbao
127 天前
上一次看到这个词应该还是在 2009 年刚工作的时候~~~~
bbao
127 天前
@lujiaxing 如果认识支付宝或者微信的同学,可以做一些咨询,看看他们用不用。
lambdaq
127 天前
存储过程 不就是个 low code

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

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

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

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

© 2021 V2EX