Mysql 存储过程、函数和触发器
2016-03-04 13:04
477 查看
存储过程的作用
1)存储过程是已编译的一组sql脚本,运行时比实时产生的SQL脚本的性能高。2)存储过程增强了SQL语言的功能和灵活性,完成一些复杂的判断和运算。
3)确保数据的安全性和完整性。(无需把数据交给外部应用进行计算,无需把表结构暴露给外部程序,方便事务控制,减少网络依赖使事务的耗时更短)
4)把一些关键规则落地到存储过程中,可以减少外层程序的复杂度,减少不同子系统间的依赖。(不过也有不足的地方,毕竟对于并发请求,分布式运算没有能力,也不是百分百完美)
存储过程和函数的比较
1)相比于存储函数,存储过程的性能应该更高,因为存储过程是预编译的。2)存储过程没有返回值,存储函数有返回值。存储过程的返回是通过变量传递的。
3)同样是编程语言,所以要考虑的东西基本跟其他语言一致,譬如模块化代码方便扩展和复用、异常处理、日志记录。
触发器
1)触发器可以由insert、update、delete语句触发2)触发器是比较难管理的数据库对象,慎用。有很多方法可以替代触发器的,譬如存储过程,或者事务。
相关文章推荐
- MySQL中的integer 数据类型
- MySQL存储过程
- mysql中int、bigint、smallint 和 tinyint的区别与长度
- mysql load data 导出、导入 csv
- source命令执行SQL脚本文件
- MySQL创建用户及权限控制
- MySQL管理数据表
- linux下mysql添加用户
- mysql procedure
- mysql触发器
- MySQL 备份和恢复策略
- mac下安装mysql(转载)
- mysql 修改编码 Linux/Mac/Unix/通用(杜绝修改后无法启动的情况!)
- MySQL数据的导出、导入(mysql内部命令:mysqldump、mysql)
- mysql数据行转列
- Linux下修改MySQL编码的方法
- MySQL Server 日志
- MySQL 安全事宜
- MySQL 备份与恢复