Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 视图和存储过程之间的性能差异_Mysql_Database_Stored Procedures_View - Fatal编程技术网

Mysql 视图和存储过程之间的性能差异

Mysql 视图和存储过程之间的性能差异,mysql,database,stored-procedures,view,Mysql,Database,Stored Procedures,View,我想知道哪个性能更好:视图还是存储过程 如果在视图和存储过程中都编写了相同的select查询(例如,使用一些联接),那么哪一个将提供更好的性能。或者在这种情况下,一个选项应该是什么。老实说,它们是非常不同的概念。视图是单个结果集,它在单个查询语句中显示来自一个或多个源的信息。它有一个固定的模式(即它返回的结果集总是有相同的列),并且没有参数 存储过程只是存储查询。它们可以有参数,您可以选择哪些部分使用控制逻辑执行或不执行,它们可以创建和销毁数据库中的对象,它们可以返回任意数量的结果集。查看---

我想知道哪个性能更好:视图还是存储过程


如果在视图和存储过程中都编写了相同的select查询(例如,使用一些联接),那么哪一个将提供更好的性能。或者在这种情况下,一个选项应该是什么。

老实说,它们是非常不同的概念。视图是单个结果集,它在单个查询语句中显示来自一个或多个源的信息。它有一个固定的模式(即它返回的结果集总是有相同的列),并且没有参数

存储过程只是存储查询。它们可以有参数,您可以选择哪些部分使用控制逻辑执行或不执行,它们可以创建和销毁数据库中的对象,它们可以返回任意数量的结果集。

查看---

不接受参数。 可以用作大型查询中的构建块。 只能包含一个Select查询。 无法对任何表执行修改。 可以(有时)用作插入、更新和删除查询的目标

存储过程---

接受参数。 无法在大型查询中用作构造块。 可以包含几个语句,如if、else、loop等。 可以对一个或多个表执行修改。
无法用作插入、更新和删除查询的目标。

对这两个查询运行测试时发生了什么?为什么不同时运行这两个查询并测量时间?