众所周知,以银行为主的金融行业的核心业务系统绝大部分使用的 Oracle、DB2等传统关系型数据库,大量的核心业务逻辑写在了 存储过程 中,且大多数业务系统中存在上百个这样的存储过程。
无论是 Oracle PL/SQL,还是 DB2 SQL PL语言都各有不同,况且 TDSQL 基于早期 MySQL的源码开发,根本不支持存储过程、触发器。强行迁移势必会对应用层进行大刀阔斧的改造,如此大的改动所带来的风险巨大,且不说技术难度与投入成本,如何降低迁移至 TDSQL的风险?
如果风险不能最小化的话,TDSQL的银行业推广价值又有几分呢?
现在新的系统设计,已不存在这种大量存储过程的情况。以我行采用的长亮v7版本核心系统,初始设计就没有使用存储过程,对存储过程的不支持,更多是分布式的原因,而非底层MYSQL版本问题,各分布式数据库基本都不支持。
存储过程,复杂SQL有其价值,但若新的系统,从架构层做好设计,规范必须使用简单SQL,对于性能,并发的优化是极有好处的,对于后续的开发难度也会降低。
切换为分布式数据库,分布式带来的高并发、高可用、高性能、易扩展就是其价值。
对于系统层的运维也带来了改变,可以去小机等。oracle虽可运行于linux,但linux单机的稳定性较小机仍要差上许多,分布式才可弥补这个问题。