【问题标题】:Indexes and nested joins索引和嵌套连接
【发布时间】:2012-03-18 12:54:10
【问题描述】:

我经常将复杂的查询分解为临时表,以便我可以评论它们并帮助我理解这些步骤。

这与 mysql 在内部处理嵌套连接的方式有很大不同吗?

例如select * from t1,t2,t3,t4 where t1.id=t2.id and t2.id2 = t3.id2, t4.id3 = t3.id3

t1 上定义的索引是否会“转移”到 mysql 创建的用于保存中间结果的任何内部表?

在显式定义临时表或使用一个充满嵌套连接的单个查询之间,性能方面是否存在重大差异?

【问题讨论】:

    标签: mysql join indexing


    【解决方案1】:

    索引不会转移到您显式创建的临时表中。它们就像普通表一样,只是当您不再打开会话时它们会消失。数据库不知道表中的数据最初来自对其他一些具有索引的表的查询;一方面,您可能在查询后在临时表中插入/删除/更新了行。

    我希望 mysql 使用它认为在您运行连接时会有益的任何索引,但索引必须位于连接中的表上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-24
      • 2017-10-19
      • 2021-07-10
      • 2022-09-28
      • 1970-01-01
      相关资源
      最近更新 更多