2016 - 2024

感恩一路有你

数据库存储过程的作用是什么 为什么阿里巴巴Java开发手册里要求禁止使用存储过程?

浏览量:1487 时间:2021-03-12 06:50:33 作者:admin

为什么阿里巴巴Java开发手册里要求禁止使用存储过程?

存储过程,最早的概念据我推断是来自于Oracle,最早oracle是只有函数的概念,依稀记得是oracle8还是9才加的存储过程package的概念,用于解决函数过于碎片化、不具备复杂的多逻辑功能,同时便于文件管理加入的概念。到后期基本所有数据库也都有了存储过程,如:mysql,sybase等。

存储过程是基于数据库底层的语法,与数据库是相互依存的,且各个类型数据库语法都不一样。

Java语言在很大一部分的优势就是为了解耦合和可移植性,所以也有经典的dao模式,目的也就是把数据库和业务层分开。如果直接调用存储过程,混淆了业务和数据库分层,打破了Java模式设计的初衷。而且,如果用存储过程写,比如原来用Oracle数据库,现在客户要求改成免费的Mysql数据库,意味着基本所有的存储过程全部要重写,基本不具备可移植性。

当然,万事没有绝对。阿里的整套体系庞大,数据库的能力强大,中间件的主机也足够横向扩展。像我们一般的项目没那么多的主机和算力可搭配,有时碰上复杂的报表或复杂的逻辑,也不得不借用数据库存储过程来实现。

一般来说,项目上数据库主机的配置比web主机相对强大得多,且存储过程在数据库操作逻辑上天然的快,在web主机不能横向扩展的情况下,也只能借用存储过程来实现。当然,用存储过程来处理也是占比很少,逼不得已情况下才使用。

存储过程的作用是什么?

存储过程是一组予编译的sql语句

它的优点:1.允许模块化程序设计,就是说只需要创建一次过程,以后在程序中就可以调用该过程任意次。

2.允许更快执行,如果某操作需要执行大量sql语句或重复执行,存储过程比sql语句执行的要快。

3.减少网络流量,例如一个需要数百行的sql代码的操作有一条执行语句完成,不需要在网络中发送数百行代码。

4.更好的安全机制,对于没有权限执行存储过程的用户,也可授权他们执行存储过程。

数据库存储过程的作用是什么 存储过程有什么用 存储过程的功能

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。