自从 MySQL 开始支持存储过程以来,我从未真正使用过它们。部分原因是我不是一个出色的查询编写者,部分原因是我经常与为我做出这些选择的 DBA 一起工作,部分原因是我只是对我所知道的感到满意。
在进行数据选择方面,特别是在考虑本质上是数据的非规范化(连接)和聚合(平均或最大值,子查询/计数等)选择时,MySQL 5.x 中的正确选择是什么? 一个看法?还是存储过程?
我很满意的视图 - 你知道你的 SELECT 查询应该是什么样子,所以你只需创建它,确保它被索引等等,然后只需执行CREATE VIEW [View] AS SELECT [...]
. 然后,在我的应用程序中,我将视图视为只读表 - 它表示我的规范化数据的非规范化版本。
这里有什么缺点 - 如果有的话?如果我将完全相同的 SELECT 语句移动到存储过程中会发生什么变化(收益或损失)?
我希望找到一些在谷歌搜索该主题时很难找到的“幕后”信息,但我真的欢迎所有评论和答案。