多表连接是否会降低mysql的速度
我的简单问题是:多表联接是否会降低mysql的性能 我有一个数据集,需要在正确索引的列上连接大约6个表 我读这些线就像 但问题依然存在多表连接是否会降低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使用连接算法进行连接
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都需要一个临时表,并且还有许多其他细节。从逻辑上讲,您进行的越多,它消耗的进程就越多。是的,从逻辑上讲,表演似乎会受到影响,但我不知道实际表演我没有投票权,否则我也会投票支持你。谢谢你提供如此宝贵的信息。