为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL存储过程使用还是不使用它们

MySQL存储过程使用还是不使用它们

我们正在一个新项目的开始,我们真的想知道我们是否应该在MySQL中使用存储过程。我们将仅使用存储过程来插入和更新业务模型实体。有几个表代表一个模型实体,我们将在那些存储过程的插入/更新中对其进行抽象。另一方面,我们可以从Model层调用插入和更新,但是不能在MySQL中,而是在PHP中。根据您的经验,哪个是最佳选择?两种方法的优点和缺点。就高性能而言,哪个是最快的?PS:这是一个大多数阅读的Web项目,而高性能是最重要的要求。
查看完整描述

3 回答

?
函数式编程

TA贡献1807条经验 获得超9个赞

与编程代码不同,它们:

  • 使得SQL注入攻击几乎是不可能的(除非您正在 从过程内部
    构造和执行动态
    SQL)

  • 作为标注的一部分,要求通过IPC发送的数据少得多

  • 使数据库能够获得更好的缓存计划和结果集(由于其内部缓存结构,这在MySQL中显然不那么有效)

  • 可以很容易地进行隔离测试(即不作为JUnit测试的一部分)

  • 在它们允许您使用特定于数据库的功能的意义上是可移植的,这些功能被抽象在过程名称之后(在代码中,您陷入了通用SQL类型的东西)

  • 几乎永远不会比从代码调用的SQL慢

但是,正如波西米亚人所说,它也有很多弊端(这只是提供了另一个观点)。在决定最适合自己的东西之前,您可能必须先进行基准测试。


查看完整回答
反对 回复 2019-12-21
  • 3 回答
  • 0 关注
  • 1256 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信