gpt4 book ai didi

mysql - 当在普通表和从索引表中进行选择之间执行内连接时,索引是否有用

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

假设我有小表(t1)和大表(t2)。我已经索引了t2的column1和column2。如果我想INNER JOIN t1 and (select * from t2 where column1=x),那么即使在内部联接期间(select * from t2 where column1=x)之后,t2上的索引也会有帮助吗与t1?

如果我的查询是(select * from t2 where column1=x),那么显然索引是有帮助的。运行完整查询时会发生什么?它会首先运行(select * from t2 where column1=x)(此处将使用索引),然后在不使用索引的情况下与 t1 进行 INNER JOIN 吗?

最佳答案

几乎总是JOIN两个表比JOIN到“派生”表更好。

可能效率低下:

 FROM t1
JOIN ( SELECT ... FROM t2 ... ) AS t3 ON ...

可能更好:

 FROM t1
JOIN t2 ON ...

一个可能的异常(exception)是派生表 (t3) 比其来源表 (t2) 小得多。当 t3 内存在 GROUP BYDISTINCT 和/或 LIMIT 时,可能会发生这种情况。

如果您想进一步讨论,请提供两个表的完整拼写 SELECTSHOW CREATE TABLE。一个重要的讨论点是哪些索引存在(或缺失)。

关于mysql - 当在普通表和从索引表中进行选择之间执行内连接时,索引是否有用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46226290/

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