背景
一部のSQL実行時にMysql2::Error: Incorrect key file for table '/rdsdbdata/tmp/#sql_69c6_2.MYI'; try to repair it
というエラーが発生するようになった.全てのSQLにおいて起きるわけではない.
問題
check table xxx
しても問題なかったため,テーブルが壊れているわけではない.
原因はストレージ容量(tmpdirの容量)が不足していることだった.(tmpdirはSQL実行時の一時バッファ?)
解法
RDSのAllocated Storageを増やす.これはRDSを稼動させたまま変更することもできる.
RDSでないならば,tmpdirの余計なファイルを削除すればよさそう.
参考リンク
Modifying a DB Instance Running the MySQL Database Engine - Amazon Relational Database Service