一个刚刚从传统行业跳槽到互联网公司的跑过来说在他们公司的数据库开发规范上明确禁止使用存储过程,有点困惑。
因为他在之前传统公司的时候在解决一些复杂的逻辑的时候都是习惯性写存储过程的,突然不让用了都不习惯。
之所以互联网公司不让用,主要有几个方面的原因:
1.存储过程不好调试,一旦涉及到非常复杂的逻辑,定位问题的时候比较麻烦
2.存储过程的一致性很差,如果从Oracle迁移到MySQL,涉及到部分数据库独有特性的时候,整个存储过程就需要重写,不仅成本高,而且还有可能对上游业务造成影响
3.存储过程的管理比较困难,一旦存储过程的量比较大的时候,就会陷入到一个混乱的状态
4.存储过程的优化和维护很麻烦,随着业务的发展,数据库的表结构也许会发生变化,这些变化需要同步给到存储过程,并且有可能原来的SQL语句的执行计划不是最优的,也需要重新维护。
在互联网公司,业务的迭代速度是日新月异的,把业务逻辑沉淀在应用程序中,反而更加灵活。