0

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

我将来会在 CI 的活动记录中遇到任何问题吗?我做对了还是错了?

存储过程调用后的 Codeigniter DB 错误

我每次都面临这个问题。

请给我建议。

提前致谢 :)

4

1 回答 1

1

实际上,这是一个“冬青战争”问题。您可以在谷歌上搜索所有优点和缺点,但总的来说,如果您没有特殊需求并且它不是宠物项目或存储过程概念证明,请避免使用存储过程。

原因是:

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

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

结论:

增加代码复杂性不值得好处(如果有的话)。

您也可以在dba.stackexchange.com上提问或查找类似问题。也许有高声誉的人会提出任何建议?

Coding Horror上关于存储过程的一般好文章,它有点旧,但总的来说有很好的想法。

于 2013-06-06T11:57:40.807 回答