Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Php 将一个视图与另一个视图连接_Php_Mysql_Sql_Join_View - Fatal编程技术网

Php 将一个视图与另一个视图连接

Php 将一个视图与另一个视图连接,php,mysql,sql,join,view,Php,Mysql,Sql,Join,View,我正在开发一个web应用程序(PHP/MySQL),我正在寻找最佳性能 我正在构建一个视图,在这个视图中,我必须连接多个数据,但我想知道,在连接一个视图与另一个视图或表之间,最好的选择是什么 更清楚地说,如果我有: 视图1=表A连接表B 我需要来自表A和表B的视图2数据,我应该这样做吗 视图2=表连接视图1或视图2=表连接表连接 表B 非常感谢您继续处理各个表始终是一个好主意,如果您正在使用任何可能减少行数的内部联接,请先执行。减少行数将始终有助于提高性能。考虑到表连接,您可能不会每次都获得所提

我正在开发一个web应用程序(PHP/MySQL),我正在寻找最佳性能

我正在构建一个视图,在这个视图中,我必须连接多个数据,但我想知道,在连接一个视图与另一个视图或表之间,最好的选择是什么

更清楚地说,如果我有:

视图1=表A连接表B

我需要来自表A和表B的视图2数据,我应该这样做吗

视图2=表连接视图1或视图2=表连接表连接 表B


非常感谢您

继续处理各个表始终是一个好主意,如果您正在使用任何可能减少行数的内部联接,请先执行。减少行数将始终有助于提高性能。考虑到表连接,您可能不会每次都获得所提到的灵活性。

继续处理各个表始终是一个好主意,如果您正在使用任何可能减少行数的内部连接,请先执行。减少行数将始终有助于提高性能。考虑到加入表格,您可能不会每次都获得上述灵活性。

查看解释计划以了解您的具体查询。

连接到视图而不是基础表可能会对性能产生影响——因为正如Atip Roy所解释的,执行连接的顺序对性能很重要,并且在视图中包含一些连接可能会阻止您对查询中的连接进行最佳排序

但这完全取决于您的查询——这可能没有任何区别

而且,使用视图还有一个好处:它意味着该视图的逻辑只存储在一个地方。您给了我们一个简化的示例,但在现实生活中,视图1的代码可能更复杂。如果您需要在多个位置使用相同的逻辑,最好尽可能避免代码重复


因此,我会检查性能是否真正重要(以及它有多重要)。我更愿意使用视图,除非该选项的性能不可接受。

查看解释计划以了解您的具体查询。

连接到视图而不是基础表可能会对性能产生影响——因为正如Atip Roy所解释的,执行连接的顺序对性能很重要,并且在视图中包含一些连接可能会阻止您对查询中的连接进行最佳排序

但这完全取决于您的查询——这可能没有任何区别

而且,使用视图还有一个好处:它意味着该视图的逻辑只存储在一个地方。您给了我们一个简化的示例,但在现实生活中,视图1的代码可能更复杂。如果您需要在多个位置使用相同的逻辑,最好尽可能避免代码重复


因此,我会检查性能是否真正重要(以及它有多重要)。我更愿意使用视图,除非该选项的性能不可接受。

是的,你是对的,但我问的是,特别是因为我不知道数据库引擎逻辑,我的意思是可能某个视图被缓存在某个地方,访问速度比在另一个表中执行相同的联接要快,但谢谢你的回答;)是的,你是对的,但我问的是,特别是因为我不知道数据库引擎的逻辑,我的意思是,可能某个视图被缓存在某个地方,访问速度比在另一个表中进行相同的连接要快,但谢谢你的回答;)