parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Не очень понял про "...пробегаться по всей таблице..."

Misha v.3 06.03.2003 15:57

... это раз.

-естественно надо не забыть индекс на last_accessed

- далее, твой запрос:
DELETE FROM sessions WHERE TO_DAYS(NOW())-TO_DAYS(last_accessed)>=1;
плохой. (замени delete на explain select * и посмотри что он говорит)

значительно лучше так:
explain DELETE FROM session WHERE NOW() - 1 >= last_accessed
в этом случае константа (now()-1) будет вычеслена и будет по индексам выбрал диапазон, в который она попала (тоже посмотри explain). в твоем запросе для каждой строки будет происводиться вычисление TO_DAYS(NOW())-TO_DAYS(last_accessed)>=1

после подобных изменений запроса почти пофигу, когда ты будешь чистить базу, запрос этот очень быстрый (я чищу при выдачи/апдейте куки)