Сбросить /tmp во время запроса MySQL?

У меня есть запрос, работающий на большой таблице, который работал, когда я ограничивал 100. Когда я удаляю ограничение, я получаю:

[Err] 126 - Неверный ключевой файл для таблицы '/tmp/#sql_5e2d_6.MYI'; попробуй починить

Я проверил с администратором сервера, в основном файл /tmp быстро заполняется.

Есть ли способ настроить запрос для очистки таблицы по мере ее продвижения? Или запустить, скажем, 100 записей, остановить, запустить заново? Запрос довольно прост:

select distinct a, 
       min(b)   N_b
from K
group by a;

В конце концов, я пытаюсь удалить из большой таблицы повторяющиеся записи, сохранив запись с наименьшим значением в b. Это был начальный оператор select.


person user3649739    schedule 05.04.2015    source источник


Ответы (1)


Вы можете использовать что-то вроде *** Редактировать в соответствии с языком, который вы используете.

$sql = true;
int i = 0;

While($sql){

$sql = "select distinct a, 
       min(b)   N_b
from K
group by a LIMIT i, i+99";
//Do whatever you want.
i=i+100;
}
person Community    schedule 05.04.2015