автоматическое удаление из базы: cron или функция?

Тема в разделе "PHP", создана пользователем sunyang, 7 апр 2012.

Статус темы:
Закрыта.
Модераторы: latteo
  1. sunyang

    sunyang

    Регистр.:
    25 апр 2009
    Сообщения:
    444
    Симпатии:
    30
    хочу сделать автоматическое удаление данных из базы по истечении 14 дней. Создал в базе ячейки со значением времени записи ( time() ) и значением времени удаления time()+14 дней в секундах.
    Как лучше реализовать:
    При каждом запуске скрипта проходиться по базе и сравнивать значения полей time() и time+14 дней или..
    Написать функцию удаления и добавить ее в cron с выполнением каждый час или день?

    Что наиболее практично с точки зрения нагрузки на сервант и стандартов?
     
  2. Бобр Добр

    Бобр Добр

    Регистр.:
    17 янв 2010
    Сообщения:
    242
    Симпатии:
    37
    а с какой точностью по времени нужно сделать? Если с точностью не критично, то можно просто раз в 24 час ходить по крону и удалять старые данные.

    Чем меньше нужна точность, тем реже нужно делать запросы к БД, следовательно меньше нагрузка.
    Если с точностью до минуты, то тут нужен крон (не факт что скрипт будет запускаться с интервалом раз в минуту) и понятно, что нагрузка будет больше.
     
  3. bdmalex

    bdmalex Постоялец

    Регистр.:
    19 апр 2006
    Сообщения:
    68
    Симпатии:
    11
    Всё будет на мой взгляд зависеть от объёма базы.
    Для одних баз - лишняя выборка , хоть раз в 5 минут не будет напрягать, а для других и раз в сутки будет накладная процедура
     
  4. goter

    goter Писатель

    Регистр.:
    6 апр 2012
    Сообщения:
    2
    Симпатии:
    0
    cron надежнее . + можно отследить удаление и при неудаче запустить скрипт по новому или оповестить админа по емейл
     
  5. Yfo

    Yfo Создатель

    Регистр.:
    30 окт 2007
    Сообщения:
    43
    Симпатии:
    4
    Лучше кроном. И удалять лучше sql запросом, а не перебором.
     
Статус темы:
Закрыта.