Если ваша таблица никогда не содержит данных за 15 минут, вы можете использовать меньший тип данных, чем DATETIME, для хранения ваших временных меток.В зависимости от степени детализации, которая вас интересует, вы можете использовать очень маленький тип данных ... С SMALLINT вы можете хранить «минуты с полуночи».Если вы готовы потерять еще большую степень детализации, вы можете использовать TINYINT для 15-минутной степени детализации.Конечно, это требует немного более сложной логики для обработки дел «сразу после полуночи» ...
DELETE FROM tracker
WHERE (
EXTRACT(DAY_MINUTE FROM NOW()) > 15
AND post_time < EXTRACT(DAY_MINUTE FROM NOW())
) OR (
post_time < EXTRACT(DAY_MINUTE FROM NOW()) < 15
AND post_time < EXTRACT(DAY_MINUTE FROM NOW()+60)
)
Преимущество состоит в том, что данные, которые вы должны прочитать и сравнить, намного меньше, поэтому их можно обрабатыватьБыстрее.Это имело бы большее значение, если бы вы хранили свои данные на диске, где дисковый ввод-вывод пропорционально намного важнее пропускной способности вашей памяти.
Кроме того, для таблицы, содержащей только 10-15k строк, и правильнойИндекс, я сомневаюсь, что это будет иметь какое-либо заметное значение - будь то на диске или в памяти.