Arquivo de chave incorreto com MySQL
Estou tendo um problema com uma tabela InnoDB (a tabela era inicialmente MyISAM, mas a converteu em InndoB há algum tempo); Estou tentando executar esta consulta:
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;
Eu recebo este erro:
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
Não consigo executar um reparo nas tabelas envolvidas; no entanto, executei um CHECK em ambas as tabelas e elas parecem bem. Eu também fiz um OTIMIZE em ambas as tabelas e também reconstruiu as tabelas, fazendo o seguinte.
INSERT INTO new_table SELECT * FROM old_table;
Em seguida, renomeei a nova tabela para o nome da tabela antiga ..... mas ainda estou tendo esse problema.
Para tentar descobrir qual tabela estava causando isso, removi o código da consulta referente à tabela "rss_feeds" .... agora a consulta se parece com isso ..
SELECT
posts.id,
posts.post_title
FROM
rss_posts AS posts
ORDER BY
posts.post_date_db DESC
LIMIT
10;
Isso funcionou.
Portanto, o problema está relacionado à tabela rss_feeds.
Então eu pensei em converter a tabela novamente para MyISAM e executar um reparo e depois converter novamente para o InnoDB ..... isso funcionou temporariamente, voltou ao normal .... depois quebrou novamente ..... reparado novamente, quebrou novamente .... agora o reparo não parece funcionar.
Agora, eu sei, eu sei ...... Eu já procurei por esse problema no Google ...... notei que a MAIORIA do tempo em que o problema está lá não existe espaço suficiente no diretório temporário do MySQL. ... mas já consegui que o host alterasse o diretório temporário para algo com muito mais espaço e o problema ainda permanece.
Eu estou pensando que o anfitrião é o culpado e ainda é um problema com o dir temp; porque? Porque depois que eu comecei a trabalhar novamente, comecei a adicionar dados à tabela rss_posts novamente e, portanto, o JOIN ficaria mais LARGER e o MySQL ficaria sem espaço novamente .... o que você acha?