Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.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_Join - Fatal编程技术网

多表连接是否会降低mysql的速度

多表连接是否会降低mysql的速度,mysql,join,Mysql,Join,我的简单问题是:多表联接是否会降低mysql的性能 我有一个数据集,需要在正确索引的列上连接大约6个表 我读这些线就像 但问题依然存在 有经验的人能回答吗?默认情况下,MySQL使用连接算法进行连接 SELECT t1.*, t2.col1 FROM table1 t1 LEFT JOIN table2 t2 ON t2.id = t1.id 实际上,产生与子查询相同的性能,如下所示: SELECT t1.*, (SELECT col1 FROM table2 t2 WHERE t2.

我的简单问题是:多表联接是否会降低mysql的性能

我有一个数据集,需要在正确索引的列上连接大约6个表

我读这些线就像

但问题依然存在


有经验的人能回答吗?

默认情况下,MySQL使用连接算法进行连接

SELECT t1.*, t2.col1
FROM table1 t1
LEFT JOIN table2 t2
  ON t2.id = t1.id
实际上,产生与子查询相同的性能,如下所示:

SELECT t1.*, (SELECT col1 FROM table2 t2 WHERE t2.id = t1.id)
FROM table1 t1
索引对于满足子查询中的
WHERE
子句显然很重要,并且以相同的方式用于连接操作

假设索引正确,连接的性能相当于MySQL必须执行的查找次数。查找次数越多,所需时间越长

因此,涉及的行越多,连接速度越慢。具有小结果集(几行)的联接速度很快,被认为是正常使用。保持你的结果集小,使用适当的索引,你会没事的。不要逃避加入


当然,对MySQL来说,对多个表的结果进行排序可能会稍微复杂一些,而且每当您连接文本或blob列时,MySQL都需要一个临时表,并且还有许多其他细节。

从逻辑上讲,您进行的越多,它消耗的进程就越多。是的,从逻辑上讲,表演似乎会受到影响,但我不知道实际表演我没有投票权,否则我也会投票支持你。谢谢你提供如此宝贵的信息。