查询耗时太长

时间:2012-04-04 07:02:33

标签: mysql

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)

2 个答案:

答案 0 :(得分:1)

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

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

其他可能有用的方法是“优化表格”,甚至“分析表格”以检查是否存在不一致。

答案 1 :(得分:1)

使用subselect,尤其是“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上有索引。