存储程序的优缺点及在PHP中的使用
1. 存储程序的缺点
存储程序虽然有显著优势,但也存在一些缺点,以下是详细介绍:
1.1 计算性能较差
在执行计算密集型任务时,如“数字运算”算法、复杂字符串操作等,存储程序(尤其是 MySQL 存储程序)通常比 PHP、Java 和 Perl 等语言慢。大多数情况下,存储程序的时间主要花在数据库访问上,此时存储程序因网络开销较低而具有性能优势。但如果要编写计算密集型程序,在存储程序语言和 Java 等其他语言之间选择时,建议不使用存储程序。
1.2 导致逻辑碎片化
将数据访问逻辑封装在存储程序中通常是有用的,但将业务和应用逻辑分散在存储程序、中间层或应用客户端中是不明智的。调试涉及存储程序代码和其他应用代码交互的错误,比调试完全封装在应用层的代码困难得多。例如,目前没有调试器可以跟踪从应用代码到 MySQL 存储程序代码的程序流程。
1.3 缺乏可移植性
虽然存储程序可以通过将依赖于 RDBMS 的 SQL 封装在存储程序调用中来构建独立于 RDBMS 的应用程序,但这仅适用于处理参数和返回结果集语义相似的 RDBMS 类型。MySQL、DB2 和 Microsoft SQL Server 实现的存储程序行为相似,都能返回多个结果集,且大多数语言访问这些结果集的调用是兼容的。然而,Oracle 是个例外,其存储程序返回的结果集是作为输出参数中的引用,而不是独立的结果集。要检索这些结果集,必须编写高度特定于 Oracle 的应用代码。因此,如果目标是实现 MySQL 和 Oracle 之间的可移植性,至少在实现返回结果集的调用时,建议使用 ANSI 标准
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



