gpt4 book ai didi

MySQL:在两个表 A 和 B 中查找匹配的记录,其中 B 很大

转载 作者:可可西里 更新时间:2023-11-01 07:35:45 26 4
gpt4 key购买 nike

以下工作正常但速度太慢。只需要知道B表中有匹配的记录,有什么技巧吗?

(奇怪的是相反的搜索:找到不加入的记录(IS NULL)非常快)

SELECT
TableA.id
FROM
TableA
LEFT JOIN
TableB
ON
TableB.TableA_id = TableA.id
WHERE
TableB.id IS NOT NULL and TableA.clientid=13 ;

Clientid 现在已编入索引,但正是这个子条款大大减慢了查询速度,从非常快到几分钟。

(03May12 我现在已经在功能更强大的服务器上的相同数据库上尝试了相同的查询,查询需要一秒钟。所以我的问题似乎是我的原始服务器完全重载了,具有讽刺意味的是,上面的查询正在用于识别我们可以删除的记录以减小表的大小。我将不得不在更快的服务器上重建数据库,清理它然后在“慢”服务器上重新生成它)

最佳答案

索引应该在 TableB.TableA_id 和 TableA.id 上创建

SELECT
Count(TableA.id)
FROM
TableA
JOIN
TableB
ON
TableB.TableA_id = TableA.id And TableB.id IS NOT NULL
and TableA.clientid=13 ;

关于MySQL:在两个表 A 和 B 中查找匹配的记录,其中 B 很大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10398184/

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