以下工作正常,但太慢了。我只需要知道表 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 现在已编入索引,但正是这个子条款将查询速度从非常快减慢到几分钟。
(2012 年 3 月 3 日,我现在在功能更强大的服务器上的相同数据库上尝试了相同的查询,查询需要一秒钟。所以看来我的问题是我的原始服务器完全超载,具有讽刺意味的是,上面的查询被用来识别我们可以删除以减少表大小的记录。我将不得不在更快的服务器上重新构建数据库,清理它然后在“慢”服务器上重新生成它)