在codeigniter大型应用程序中使用mysql存储过程是个好主意吗?

时间:2013-06-06 11:28:52

标签: php mysql codeigniter

我正在开发一个大型的codeigniter应用程序,我想我会在mysql中使用存储过程,在CI中使用存储过程是个好主意吗?

我是否会因CI的有效记录而面临任何问题? 我做对还是错?

Codeigniter DB errors after stored procedure call

我每次都会遇到这个问题。

请建议我。

提前致谢:)

1 个答案:

答案 0 :(得分:1)

实际上,这是一个“冬青战争”的问题。你可以谷歌所有的利弊,但一般来说,如果你没有特殊需要,它不是宠物项目或存储证明程序概念,避免使用存储过程。

原因是:

  • 维护。在对数据结构进行一些更改时,您很容易忘记更新过程。
  • 文档。有时,特别是新员工不知道该程序到底做了什么,或者需要与程序略有不同的数据并自行编写,所以有一段时间你会得到一堆程序。
  • 性能与。如果使用预准备语句,它们将由查询解析器和优化器“编译”,然后存储在缓存中。在每个调用查询管理器上只使用新数据执行该编译查询,因此您不会获得任何额外的性能优势(我说的是每分钟10k次点击x每个请求中对db的N次查询)

我的信念可能有误,但对于原型设计或快速增长的项目存储过程没有任何意义。我试验过它们,有时发现它们很好,但仅此而已。看起来在mysql中添加了存储过程,因为它们存在于Oracle和PostgreSQL中

结论:

增加代码复杂性并不值得获益(如果有的话)。

您也可以在dba.stackexchange.com上提问或寻找相似内容。 也许有名气的人会提出任何建议吗?

关于存储过程的一篇很好的文章,一般可以在Coding Horror获得,它有点旧,但一般都有很好的想法。