У меня была эта проблема с запросом на таблицу с 500K + записями. Это давало мне тот же самый точный тип ошибки, указывающий на файл .MYI в каталоге / tmp, который редко присутствовал при проверке. Я уже увеличил размеры файлов кучи и временных файлов в файле /etc/my.cnf.
Проблема с запросом заключалась в том, что он действительно содержал предложение ORDER в конце, опустив его, он запустил запрос без ошибок. У него также был LIMIT. Я пытался посмотреть последние 5 записей в таблице. С включением предложения ORDER он задохнулся и дал ошибку.
Что происходит, так это то, что mysqld создавал внутреннюю временную таблицу со всеми записями из гигантской таблицы, чтобы применить ORDER.
Способ, которым я обходился, - применить дополнительное условие WHERE, ограничив записи с гигантской таблицы на какой-то меньший набор. Мне удобно иметь поле datetime для фильтрации.
Надеюсь, это поможет кому-то.