gpt4 book ai didi

mysql - 为什么我的带有子查询和 JOIN 的 SELECT 这么慢?

转载 作者:行者123 更新时间:2023-11-29 01:43:59 25 4
gpt4 key购买 nike

此查询需要 10 秒才能完成。但是当我手动执行子查询并将 t1.id 限制更改为该列表时,它在 0.00 秒内完成。如何让 MySQL 更快地执行查询?

SELECT t1.col1, t2.col2, t3.col3
FROM t1, t2, t3
WHERE t1.t2id = t2.id AND t1.t3id = t3.id
AND t1.id IN ( SELECT id FROM t4 WHERE blah = 123 )

还有,为什么会这样?我想 MySQL 在过滤 t1.id 之前以某种方式连接所有三个表。

t1、t2 和 t3 分别包含 3000、15 和 80 行。子查询返回 2-10 行。

最佳答案

尝试使用“INNER JOIN”而不是“IN”函数。这样您的 sql 指令将更具性能。

SELECT t1.col1, t2.col2, t3.col3
FROM ((t1 INNER JOIN t2 ON t1.t2id = t2.id) INNER JOIN t3 ON t1.t3id = t3.id) INNER JOIN t4 ON t1.id = t4.id
WHERE t4.blah = 123

关于mysql - 为什么我的带有子查询和 JOIN 的 SELECT 这么慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12005139/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com