【发布时间】:2011-04-23 22:06:11
【问题描述】:
我在使用 InnoDB(表最初是 MyISAM,但不久前将其转换为 InndoB)表时遇到问题;我正在尝试运行此查询:
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
INNER JOIN rss_feeds AS feeds ON posts.blog_id=feeds.id
WHERE
feeds.blog_language=1
ORDER BY
posts.post_date_db DESC
LIMIT
10;
我收到此错误:
Query : SELECT posts.id,posts.post_title FROM rss_posts AS posts INNER JOIN vw_rss_feeds AS feeds ON posts.blog_id=feeds.id WHER...
Error Code : 126
Incorrect key file for table '/tmp/#sql_7375_0.MYI'; try to repair it
我无法对涉及的表进行修复;但是我对两张桌子都进行了检查,它们看起来都很好。我还对两个表进行了优化,并且还通过执行以下操作重建了表..
INSERT INTO new_table SELECT * FROM old_table;
然后我将新表重命名为旧表名......但我仍然遇到这个问题。
为了尝试找出导致它的表,我删除了查询中引用“rss_feeds”表的代码......所以现在查询看起来像这样......
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
成功了。
所以问题出在 rss_feeds 表上。
然后我想我会将表转换回 MyISAM 并运行修复然后转换回 InnoDB ......这暂时工作,它恢复正常......然后它又坏了...... .. 又修了,又坏了.. 现在修复似乎根本不起作用。
现在,我知道,我知道......我已经在谷歌上搜索过这个问题......我注意到问题的大部分时间是我们在 MySQL 中没有足够的空间临时目录....但是我已经让主机将临时目录更改为具有更多空间的东西,问题仍然存在。
我认为应该归咎于主机,但它仍然是临时目录的问题;为什么?因为在我让它再次工作后,我开始再次向 rss_posts 表添加数据,因此 JOIN 会变得更大,而 MySQL 会再次耗尽空间......你觉得呢?
【问题讨论】:
标签: mysql innodb mysql-error-126