【发布时间】:2014-12-19 06:18:59
【问题描述】:
我想知道哪个性能更好:视图或存储过程。
如果在视图和存储过程中都编写了相同的选择查询(比如有一些连接),那么哪个会提供更好的性能。或者在这种情况下应该选择什么。
【问题讨论】:
-
对两者都进行测试时发生了什么?
-
你为什么不同时运行并测量时间?
标签: mysql database stored-procedures view
我想知道哪个性能更好:视图或存储过程。
如果在视图和存储过程中都编写了相同的选择查询(比如有一些连接),那么哪个会提供更好的性能。或者在这种情况下应该选择什么。
【问题讨论】:
标签: mysql database stored-procedures view
说实话,它们是非常不同的概念。视图是在单个查询语句中呈现来自一个或多个来源的信息的单个结果集。它有一个固定的模式(即它返回的结果集总是有相同的列)并且它没有参数。
存储过程只是存储查询。它们可以有参数,你可以通过控制逻辑选择执行或不执行哪些部分,它们可以在数据库中创建和销毁对象,它们可以返回任意数量的结果集。
【讨论】:
查看---
不接受参数。 可以用作大型查询中的构建块。 只能包含一个 Select 查询。 无法对任何表执行修改。 可以(有时)用作插入、更新、删除查询的目标。
存储过程---
接受参数。 不能用作大型查询中的构建块。 可以包含多个语句,如 if、else、loop 等。 可以对一个或多个表进行修改。 不能用作插入、更新、删除查询的目标。
【讨论】: