MySQL查询: Incorrect key file for table

标签 mysql mysql-error-126

我运行此查询:

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 

为什么?

最佳答案

You equal 是一个连接,它通常返回相当小的一组内容。如果将 = 替换为 !=,则将强制数据库执行 CROSS JOIN,然后进行过滤以排除任何相等的记录。

要进行交叉连接,数据库可能需要创建一个临时表,其总行数等于(video_resurse 中的行数)*(predicimp3 中的行数)。如果这些表中的任何一个包含大量行,则临时表可能会非常大并且需要很长时间才能生成。因此性能很慢。

您看到的错误可能表明您在/tmp 目录(mysql 默认情况下放置临时表的位置)中运行了足够的空间,这可能会导致该错误。

关于MySQL查询: Incorrect key file for table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2075147/

相关文章:

PHP上传错误

php - MySQL:表 '/tmp/#sql_185e_0.MYI' 的 key 文件不正确;尝试修复它

php - 从多维数组中删除最后一项并将剩余项插入 MySql

php - 想要创建一个脚本来备份整个数据库并下载它

sql - 运行查询时出错

mysql - MyISAM 表索引文件经常崩溃!

MySQL:#126 - 表的 key 文件不正确

mysql - MySQL 的 key 文件不正确

php - MySQL 在查询中运行查询