使用存储过程的利弊

互联网公司,几乎不使用存储过程。

而银行、金融等国企则喜欢存储过程。

不使用存储过程

互联网行业,一般都会考虑到并发问题,存储过程在高并发场景下数据库往往是性能瓶颈

如果要换库,则存储过程要重写。

没有办法断点,下层数据结构只是稍微变动,根本无法找到出错点,只是提示一下说:ERROR:1064啥的。

存储过程只是单机时代的产物,并不适合互联网时代。互联网公司几乎不使用存储过程,阿里则明确禁止使用存储过程。

MySQL/PostgreSQL对存储过程支持比较弱,没有实现Oracle的SQL compilation。而互联网公司几乎都不太可能使用 Oracle ,它的价格一般都承受不起。

支持集群的存储过程,太少,一般情况下要分库,此时存储过程就无法支持。

使用存储过程

开发速度快,如果业务更新频繁。即使是请10个开发人员,也比不过一个写存储过程,后者只需要写几条sql,写业务代码则需要非常多。

性能更优,如果钱不是问题,已经使用了oracle、SQLServer,使用存储过程来优化性能,未必不好。

责任分明,谁提供数据库,出问题责任就在谁身上,只管写就是了。(各个部门责任不一样,不一定非要站在总体的角度来看)

对于银行项目,数据往往保留很长时间,无论是新数据还是旧数据处理,定时处理等,一个超大型的数据库,不使用存储过程,几乎是无力管理。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注