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
関係するテーブルの修復を実行できません。ただし、両方のテーブルでCHECKを実行したところ、正常に表示されます。また、両方のテーブルでOPTIMIZEを実行し、以下を実行してテーブルを再構築しました。
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に変換して戻すと考えました。これは一時的に機能し、通常の状態に戻りました。その後、再び壊れました。修復されました。もう一度、また壊れました....今は修理がまったく機能していないようです。
今、私は知っています、私は知っています......私はすでにGoogleでこの問題を検索しました......私は問題の大部分がMySQL一時ディレクトリに十分なスペースがないことに気づきました。 ...しかし、私はすでにホストに一時ディレクトリをもっと多くのスペースがあるものに変更するように依頼しましたが、問題はまだ残っています。
私はホストが責任があると思っています、そしてそれはまだ一時ディレクトリの問題です。なぜ?再び機能するようになった後、rss_postsテーブルにデータを再度追加し始めたため、JOINが大きくなり、MySQLのスペースが再び不足するためです。...どう思いますか?