您现在的位置: 首页 > 网站导航收录 > 百科知识百科知识
为什么阿里巴巴Java开发手册里要求禁止使用存储过程?
存储过程,数据库,逻辑为什么阿里巴巴Java开发手册里要求禁止使用存储过程?
发布时间:2019-02-08加入收藏来源:互联网点击:
为什么阿里巴巴Java开发手册里要求禁止使用存储过程?
回答于 2019-09-11 08:43:50
回答于 2019-09-11 08:43:50
存储过程,最早的概念据我推断是来自于Oracle,最早oracle是只有函数的概念,依稀记得是oracle8还是9才加的存储过程package的概念,用于解决函数过于碎片化、不具备复杂的多逻辑功能,同时便于文件管理加入的概念。到后期基本所有数据库也都有了存储过程,如:mysql,sybase等。
存储过程是基于数据库底层的语法,与数据库是相互依存的,且各个类型数据库语法都不一样。
Java语言在很大一部分的优势就是为了解耦合和可移植性,所以也有经典的dao模式,目的也就是把数据库和业务层分开。如果直接调用存储过程,混淆了业务和数据库分层,打破了Java模式设计的初衷。而且,如果用存储过程写,比如原来用Oracle数据库,现在客户要求改成免费的Mysql数据库,意味着基本所有的存储过程全部要重写,基本不具备可移植性。
当然,万事没有绝对。阿里的整套体系庞大,数据库的能力强大,中间件的主机也足够横向扩展。像我们一般的项目没那么多的主机和算力可搭配,有时碰上复杂的报表或复杂的逻辑,也不得不借用数据库存储过程来实现。
一般来说,项目上数据库主机的配置比web主机相对强大得多,且存储过程在数据库操作逻辑上天然的快,在web主机不能横向扩展的情况下,也只能借用存储过程来实现。当然,用存储过程来处理也是占比很少,逼不得已情况下才使用。
回答于 2019-09-11 08:43:50
存储过程不利于移植,受数据库限制,而且阿里巴巴都是大型分布式集群存储过程更是劣势巨大!越是大型的分布式系统越是追求编码业务而不是绑死在数据库上,因为你不知道那一天就要换数据库了
回答于 2019-09-11 08:43:50
Java人多 程序处理数据更方便
回答于 2019-09-11 08:43:50
存储过程不好移植,如果数据库换了,肯定需要爱重写。单纯的SQL语句一般不用
存储过程不好维护。现在业务逻辑复杂,如果逻辑分散在存储过程和后台程序里先,得关注两部分
上一篇:学生党求推荐几款颈挂式耳机,主要是听歌音质相比好一点就行?
下一篇:返回列表
相关链接 |
||
网友回复(共有 0 条回复) |