по электронной почте с листа Google с предварительным просмотром

У меня была эта проблема с запросом на таблицу с 500K + записями. Это давало мне тот же самый точный тип ошибки, указывающий на файл .MYI в каталоге / tmp, который редко присутствовал при проверке. Я уже увеличил размеры файлов кучи и временных файлов в файле /etc/my.cnf.

Проблема с запросом заключалась в том, что он действительно содержал предложение ORDER в конце, опустив его, он запустил запрос без ошибок. У него также был LIMIT. Я пытался посмотреть последние 5 записей в таблице. С включением предложения ORDER он задохнулся и дал ошибку.

Что происходит, так это то, что mysqld создавал внутреннюю временную таблицу со всеми записями из гигантской таблицы, чтобы применить ORDER.

Способ, которым я обходился, - применить дополнительное условие WHERE, ограничив записи с гигантской таблицы на какой-то меньший набор. Мне удобно иметь поле datetime для фильтрации.

Надеюсь, это поможет кому-то.

0
задан trincot 18 March 2019 в 20:12
поделиться