|
Тема |
Ускоряване на delete |
|
Автор |
Martinnnnnn (tst) |
|
Публикувано | 18.03.05 04:20 |
|
|
Здраейте, имам таблица в която има следните полета
time host
таблицата служи като лог файл, а аз искам периодично да премахвам старите записи по определен критерий. В таблицата постоянно се добавят записи, като само time расте, а host и port се повтарят. Това което искам е да премахна от таблицата тези записи които се повтарят по-малко от 5 пъти. За момента реших проблема като използвам temporary table.
CREATE TEMPORARY TABLE tmptable select host,count(host) as cnt from log group by host HAVING cnt<5;
след това затривам записите
delete from log using tmptable,log where log.host=tmptable.host;
Проблема ми в крайна сметка е,че това май става супер бавно:
Query OK, 153 rows affected (1 min 35.85 sec)
Има ли начин да се оптимизира тази заявка или това е най-добрия вариант?
|
| |
|
|
|