• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    MySQL 存储过程的优缺点分析

    MySQL 5.0 版本开始支持存储过程。存储过程(Stored Procedure)是数据库中存储的复杂程序,以便外部应用调用的一种数据库对象。存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(可选)来调用执行。

    存储过程可以有效提高 SQL 语句的复用率,并且可以将相关的一组 SQL 放入到存储过程中,从而避免了应用程序的多次查询带来的与 MySQL 服务器的连接延迟和占用的网络资源。下面是一个存储过程的示例,用于传入一个 id 来删除指定 id的学生,并同时删除扩展表中的学生信息。通过这种方式就可以处理相关联的数据,而不需要应用程序分两次 SQL 操作。

    DROP PROCEDURE IF EXISTS delete_student_by_id;
    
    delimiter $$
    
    CREATE PROCEDURE delete_student_by_id(IN p_id INT)
    BEGIN
    	DELETE FROM t_students
      WHERE id = p_id;
          
      DELETE FROM t_students_info
      WHERE student_id = p_id;
    END
    $$
        
    delimiter ;
    

    总的来说,存储过程有如下的优点:

    当然,有利必有弊,存储过程也会存在一些缺陷:

    因此,通常,需要保持存储过程小巧简洁,以避免上述的缺陷。当然,在某些操作时,存储过程会运行得更快,尤其是在存储过程中使用循环完成多个小查询。如果查询足够小,解析 SQL 语句和网络通信则变成了工作负荷过高的重要因素。这个时候存储过程的优势就会被突显出来。以下面的存储过程代码为例:

    DROP PROCEDURE IF EXISTS insert_many_rows;
    
    delemiter //
    
    CREATE PROCEDURE insert_many_rows(IN loops INT)
    BEGIN
    	DECLARE v1 INT;
      SET v1=loops;
      WHILE v1 > 0 DO
      	INSERT INTO test_table values(NULL, 0,
                                     'aaaaaaaaaaaabbbbbbbbbb',
                                     'aaaaaaaaaaaabbbbbbbbbb');
        SET v1=v1-1;
      END WHILE;
    END
    //
    
    delemiter ;
    	
    

    可以通过与应用程序实现同样的功能进行比较,发现使用存储过程的性能提高了2倍以上,而如果与使用 MySQL 代理相比,性能会提高到3倍。

    结语:存储过程目前用得其实不多,但是对于一些稳定的业务,如果是因为与数据库服务器之间的网络请求过多或占用了大量的网络带宽,则可以考虑使用存储过程来优化性能,提高响应速度。但是,存储过程务必反复验证,避免出现意向不到的错误导致耗费过多的时间排查问题。

    以上就是MySQL 存储过程的优缺点分析的详细内容,更多关于MySQL 存储过程的优缺点的资料请关注脚本之家其它相关文章!

    您可能感兴趣的文章:
    • MySQL存储过程的创建、调用与管理详解
    • MySQL存储过程的查询命令介绍
    • MySQL存储过程in、out和inout参数示例和总结
    • MySQL修改存储过程的详细步骤
    • Mysql 存储过程中使用游标循环读取临时表
    • Mysql修改存储过程相关权限问题
    • MySQL存储过程的深入讲解(in、out、inout)
    • MySQL之存储过程按月创建表的方法步骤
    • 浅谈MySql 视图、触发器以及存储过程
    • mysql存储过程之if语句用法实例详解
    上一篇:IDEA 链接Mysql数据库并执行查询操作的完整代码
    下一篇:Mysql Online DDL的使用详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    MySQL 存储过程的优缺点分析 MySQL,存储,过程,的,优缺点,