0

MySql 查询需要很长时间才能给出结果

Select pty_code from sis.tblBf a where a.BFno 
       not in (select b.BNo from sislatest.tbltransaction b)

注意:我正在比较两个不同的数据库并获得差异。

Select A.pty_code from DataBase1.TableName A 
       where A.BFno NOT IN (SELECT B.BNo From DataBase2.TableName B)
4

2 回答 2

1

也许是索引问题?这是 mysql 解释语法的用武之地:

http://dev.mysql.com/doc/refman/5.0/en/using-explain.html

其他可能有帮助的事情是“优化表”,甚至“分析表”以检查不一致。

于 2012-04-04T07:08:31.857 回答
1

使用子选择,尤其是使用“not in”子句会很慢。我建议在 where 子句中使用“is null”重写左外连接。

SELECT a.pty_code from sis.tblBf a LEFT JOIN sislatest.tbltransaction b on b.BNo = a.BFno WHERE b.BNo IS NULL

我认为这会起作用,但如果没有要测试的数据库,我会盲目地写它。

如果这仍然很慢,我会看一下并确保 b.BNo 和 A.BFNo 上有索引。

于 2012-04-04T07:26:51.817 回答