在mysql内部存储代码
在mysql内部存储代码,既有优点也有缺点,而且有人倡导有人反对。
先看优点:
1 她在服务器内部执行,离数据最近,另外在服务器上执行还可以节省带宽和网络延迟。
2 这是一种代码重用。可以方便的统一业务规则,保证某些行为的一致性,所以也可以提供一定的安全性。
3 可以简化代码的维护和版本更新。
4 可以帮助提升安全,比如提供更细粒度的权限控制。一个常见的例子是银行用于转移资金的存储过程,这个存储过程可以在
一个事务中完成资金转移和记录用于审计的日志。
5 服务器可以缓存存储过程的执行计划,这对于需要反复执行的过程,这会大大降低消耗。
6 因为是在服务器端部署的,所以备份、维护都可以在服务器端完成。所以存储程序的维护工作会很简单。他没有什么外部依赖,
不需要依赖外部程序的部署。
7 他可以在应用程序和数据库开发人员之间更好地分工。不过最好是由数据库专家来开发存储过程,因为不是每个应用开发人员
都可以写出高效的sql查询。
缺点:
1 mysql本身没有提供很好的开发和调试工具,所以编写mysql的存储代码比较困难。
2 较之应用程序的代码,存储代码的效率稍微差些。例如 可以使用的函数有限,很难写出比较复杂的逻辑。
3 存储代码可能会给应用城的代码的部署带来额外的复杂性。原先只需要部署应用程序和库表结构,现在还需要部署额外的mysql过程。
4 因为存储过程都部署在服务器内部,所以具有安全隐患,一旦服务器被攻破,就有可能泄露所有的数据。
5 过程会给服务器增加额外的压力,而数据库服务器的扩展性相比应用程序要差很多。
6 过程中的一个小错误,可能会把服务器拖死。
7 较之pl/sql t-sql mysql的存储代码功能还非常非常若。
8 调试mysql过程代码 是一件非常困难的事情。