这篇文章主要为大家详细介绍了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 ;
MySQL 存储过程的优缺点分析
总的来说,存储过程有如下的优点:
当然,有利必有弊,存储过程也会存在一些缺陷:
因此,通常,需要保持存储过程小巧简洁,以避免上述的缺陷。当然,在某些操作时,存储过程会运行得更快,尤其是在存储过程中使用循环完成多个小查询。如果查询足够小,解析 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 ;
MySQL 存储过程的优缺点分析
可以通过与应用程序实现同样的功能进行比较,发现使用存储过程的性能提高了2倍以上,而如果与使用 MySQL 代理相比,性能会提高到3倍。
结语:存储过程目前用得其实不多,但是对于一些稳定的业务,如果是因为与数据库服务器之间的网络请求过多或占用了大量的网络带宽,则可以考虑使用存储过程来优化性能,提高响应速度。但是,存储过程务必反复验证,避免出现意向不到的错误导致耗费过多的时间排查问题。
以上就是MySQL 存储过程的优缺点分析的详细内容,更多关于MySQL 存储过程的优缺点的资料请关注四海网其它相关文章!
本文来自:http://www.q1010.com/177/19181-0.html
注:关于MySQL 存储过程的优缺点的简单示例的内容就先介绍到这里,更多相关文章的可以留意四海网的其他信息。
关键词:
四海网收集整理一些常用的php代码,JS代码,数据库mysql等技术文章。