站长家园(原代码之家)(www.adminjie.com)网站源码,微信源码,游戏源码,商业源码分享平台。
当前位置:网站首页 技术文章 网络编程 正文

mysql存储过程的优缺点是什么

时间:2022-06-16 [网络编程]作者:fabuyuan 浏览:3 次

优点:1、有助于提高应用程序的性能;2、有助于减少应用程序和数据库服务器之间的流量;3、对任何应用程序都是可重用且透明的;4、可提高数据库的安全性和数据的完整性;5、可使数据独立。缺点:1、如果使用许多存储过程,则使用这些存储过程的每个连接的内存使用量将显着增加;2、存储过程的构造不是为开发复杂和灵活的业务逻辑而设计的;3、调试存储过程很困难;4、开发和维护存储过程并不容易。

本教程操作环境:windows7系统、mysql8版本、Dell G3电脑。

存储过程的定义

存储过程是存储在数据库目录中的一段声明性SQL语句。存储过程可以由触发器,其他存储过程以及JavaPythonPHP等应用程序调用。

调用自身的存储过程称为递归存储过程。大多数数据库管理系统都支持递归存储过程。但是,MySQL并不支持它。在MySQL中实现递归存储过程之前,您应检查MySQL数据库的版本。

MySQL中的存储过程

MySQL被称为最受欢迎的开源RDBMS,它被社区和企业广泛使用。但是,在它存在的第一个十年中,它不支持存储过程,存储函数,触发器和事件。从MySQL 5.0开始,这些功能被添加到MySQL数据库引擎中,使其更加灵活和强大。

MySQL存储过程的优点

  • 通常存储过程有助于提高应用程序的性能。

    一旦创建,存储过程就会被编译并存储在数据库中。但是,MySQL实现的存储过程略有不同。MySQL存储过程是按需编译的。编译存储过程后,MySQL将其放入缓存并为每个连接维护自己的存储过程缓存。如果应用程序在单个连接中多次使用存储过程,则使用编译版本,否则,存储过程的工作方式类似于查询。

  • 存储过程有助于减少应用程序和数据库服务器之间的流量,因为应用程序必须只发送存储过程的名称和参数,而不是发送多个冗长的SQL语句。

  • 存储过程对任何应用程序都是可重用且透明的。存储过程将数据库接口公开给所有应用程序,以便开发人员不必开发存储过程中已经支持的功能。

  • 提高数据库的安全性和数据的完整性。

    存储过程提高安全性的一个方案就是把它作为中间组件,存储过程里可以对某些表做相关操作,然后存储过程作为接口提供给外部程序。这样,外部程序无法直接操作数据库表,只能通过存储过程来操作对应的表,因此在一定程度上,安全性是可以得到提高的。

  • 使数据独立。

    数据的独立可以达到解耦的效果,也就是说,程序可以调用存储过程,来替代执行多条的 SQL 语句。这种情况下,存储过程把数据同用户隔离开来,优点就是当数据表的结构改变时,调用表不用修改程序,只需要数据库管理者重新编写存储过程即可。

除了这些优点之外,存储过程也有其自身的缺点,在数据库中使用它们之前应注意这些缺点。

MySQL存储过程的缺点

  • 如果使用许多存储过程,则使用这些存储过程的每个连接的内存使用量将显着增加。此外,如果在存储过程中过度使用大量逻辑操作,CPU使用率将会增加,因为数据库服务器没有针对逻辑操作进行良好设计。

  • 存储过程的构造不是为开发复杂和灵活的业务逻辑而设计的。

  • 调试存储过程很困难。只有少数数据库管理系统允许您调试存储过程。不幸的是,MySQL没有提供调试存储过程的工具。

  • 开发和维护存储过程并不容易。开发和维护存储过程通常需要一种并非所有应用程序开发人员都具备的专业技能。这可能会导致应用程序开发和维护阶段出现问题。

MySQL存储过程各有优缺点。在开发应用程序时,应根据应用程序的体系结构决定是否使用存储过程。

【相关推荐:mysql视频教程

以上就是mysql存储过程的优缺点是什么的详细内容,更多请关注站长家园其它相关文章!

本文标签:  mysql

转载请注明来源:mysql存储过程的优缺点是什么

本文永久链接地址:https://www.adminjie.com/post/13513.html

免责声明:
本站所发布的一切资源仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。

附:
二○○二年一月一日《计算机软件保护条例》第十七条规定:为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!鉴于此,也希望大家按此说明研究软件!

版权声明:
一、本站致力于为软件爱好者提供国内外软件开发技术和软件共享,着力为用户提供优资资源。
二、本站提供的部分源码下载文件为网络共享资源,请于下载后的24小时内删除。如需体验更多乐趣,还请支持正版。
三、我站提供用户下载的所有内容均转自互联网。如有内容侵犯您的版权或其他利益的,若有侵犯你的权益请:提交版权证明文件到邮箱 2225329873#qq.com(#换为@) 站长会进行审查之后,情况属实的会在三个工作日内为您删除。

  • 站长家园(原代码之家)会员升级
  • 最新文章
    热门文章