【问题标题】:Maximum no of table we can left join in one MySQL Query? [closed]我们可以在一个 MySQL 查询中加入的最大表数? [关闭]
【发布时间】:2015-08-17 20:09:28
【问题描述】:

我想知道我们可以在一个 MySQL 查询中保留多少表连接(或内连接)以有效地执行查询(良好的查询执行时间)? 我必须在我的查询中加入 4 个表。将来在同一个查询中加入 4 个表或更多表是否会产生任何问题?

dbQuery('
    SELECT w.*,t.tenant_name,t.tenant_email,ca.caste_name,co.web_cost_duration
    FROM tbl_websites w 
    LEFT JOIN tbl_tenants t 
    ON w.tenant_id = t.tenant_id
    LEFT JOIN tbl_caste ca 
    ON w.website_caste_id = ca.caste_id 
    LEFT JOIN tbl_web_costs co 
    ON w.web_cost_id = co.web_coste_id 
    ORDER BY w.website_title ASC
')

【问题讨论】:

  • 根据经验,我会说两个以上的连接,除非你的表非常小,否则它会很慢
  • "高效执行查询(良好的查询执行时间)?"是完全主观的。这取决于您需要检索哪些数据、有多少数据以及“良好的查询执行时间”对您的特定情况意味着什么。没有“好”连接的幻数,也没有“坏”连接的幻数。

标签: php mysql database join left-join


【解决方案1】:

单个连接最多可以引用61个表。

请参考此链接:Click Here

【讨论】:

    【解决方案2】:

    不,这很常见。甚至超过十个连接都没有问题。为了加快进程,您需要在连接列上添加外部索引,例如 w.tenant_id。

    【讨论】:

    • 如何在我的表中添加外部索引你能用我的例子解释一下吗?
    • ALTER TABLE tbl_websites 添加外键 (tenant_id) REFERENCES tbl_tenants(tenant_id);我这样做了,但它给了我错误。
    【解决方案3】:

    列出了 SQL Server 的限制here

    每个查询的表数仅受可用资源量的限制。

    【讨论】:

      猜你喜欢
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-03
      • 2012-05-01
      • 2012-11-17
      • 1970-01-01
      • 2015-09-28
      相关资源
      最近更新 更多