我在我的应用程序模型中一直使用内联查询语句…截至目前,许多人说存储过程将是一种很好的做法…我有以下问题
最佳答案
就像其他任何东西(触发器,视图等)一样,存储过程是一种工具,并且只能在适合该工具的地方使用.取得每个内联sql语句并将其转换为存储过程不是正确的方向.
存储过程是使用非常粗糙的逻辑编写的,并使用游标遍历数据集,这在您习惯PHP处理逻辑的能力时会成为一个障碍.
我使用SP的唯一项目是大型会计系统,其中数十万条记录必须经常更新,而很少有来自代码的直接输入.我们基本上只是告诉它何时启动,并且不需要将值传递给SP(尽管可以这样做).但是,这只是我们在系统中使用的数千个内联查询中的一两个.我并不是说这是唯一使用它们的地方,但是我已经构建了一些非常大的系统,还没有在其他地方使用它们的“需求”.
我认为最好花时间学习内联编写高速,低拖动查询,并使用EXPLAIN来验证索引设置正确.我认为,除非您对存储过程有非常特定的需求,否则您会发现它们对于日常使用非常不友好.