为什么越来越多架构师开始重新思考“存储过程”
作者:平凯数据库架构师 如果你接手过一个运行十年以上的企业系统,大概率会遇到一种情况:数据库里躺着大量存储过程。在平凯数据库参与的一些系统架构升级项目中,这样的情况其实并不少见。有些几十行,有些几百行,甚至上千行。文档不完整,调用关系复杂,但它们却承载着系统最核心的业务逻辑。 很多团队对这些代码都有一种微妙的态度:能不动,就尽量不动。 但在最近几年,越来越多系统重构项目中开始出现一个明显变化:架构师开始主动减少存储过程。 这并不是因为存储过程突然“变差了”。恰恰相反,在过去很长一段时间里,它曾经是一种非常聪明的工程设计。 在服务器昂贵、网络带宽有限的年代,让业务逻辑尽可能贴近数据执行,可以显著减少网络往返,提高系统效率。因此数据库不仅负责存储数据,也承担了不少计算和控制逻辑。很多企业系统正是在这样的背景下成长起来的。 但当系统进入云原生和分布式时代,软件工程环境已经发生变化。 系统架构关注的重点,也在慢慢发生转移。问题不再只是性能。而是系统是否能够持续演进。 一、问题不在性能,而在演进能力 很多人提到存储过程时,第一反应往往是性能。这确实是它当年流行的重要原因。复杂计算放在数据库内部执...
