2010-01-15 127 views
0

我运行此查询:MySQL查询问题

SELECT v.autor, v.titlu, 'http://85.25.176.18/resursecrestine-download' + v.`link` 
FROM `video_resurse` v, predicimp3 p 
WHERE v.titlu = p.titlu 
ORDER BY v.autor 

所有它的确定。

但是,当我替换“=”它需要很长......和,而不是结果,它给了我“=!”:

#126 - Incorrect key file for table '/tmp/#sql_42c5_0.MYI'; try to repair it 

你知道为什么吗?

回答

1

你等于是一个连接,它通常返回一小部分事物。如果将=替换为!=,则会迫使数据库执行CROSS JOIN,然后通过该过滤来排除任何相等的记录。

要执行CROSS JOIN,DB可能需要制作一个总行数等于(video_resurse中的行数)*(预测值3中的行数)的临时表。如果其中任何一个表中有大量行,那么临时表可能非常大并且需要很长时间才能生成。因此表现缓慢。

您看到的错误很可能表明您在/ tmp目录(这是默认情况下,mysql将其临时表放入的位置)运行我们的空间,从而导致该错误。

+0

你是对的。 sql查询没有足够的空间。非常感谢。 – 2010-01-15 22:54:49