2013-05-17 5 views
0

내 아이디어는 다음과 같습니다. 누군가 내 데이터베이스에 메시지를 쓰는 경우 내 메시지 '메시지'에 삽입 된 후 24 시간 후에 해당 메시지를 삭제하려고합니다. 방아쇠는 방금 전후에 작동하고 삽입 또는 업데이트하지만이 메시지가 하루 만에 생기면 실시간으로 삭제하려고합니다. 웹 응용 프로그램을 위해 이것을하는 Im. 이것이 SQL 대신 PHP 문제입니까? 이렇게 할 수있는 방법을 보여 줄 수 있습니까? 사전에수시로 데이터베이스에서 행을 삭제할 수 있습니다.

감사합니다.

+0

'사람 1 crontab을 5 crontab' –

답변

4

24 시간마다 레코드를 삭제하지 마십시오. 대신 데이터를 검색 할 때 레코드가 24 시간보다 오래되었는지 여부를 나타내는 플래그를 계산하십시오. 그냥 그들을 필터링하십시오. 보기를 사용하여이를 설정할 수 있습니다.

그런 다음 여가 시간에 24 시간이 지난 메시지를 삭제하십시오. 하루에 한 번, 일주일에 한 번 또는 언제든지이 작업을 수행 할 수 있습니다. 삭제 횟수가 많으면 성능에 좋지 않은 영향을 미칠 수 있으므로 삭제 작업을 수행 할 때까지 기다려야 할 수 있습니다.

+0

+1 cronjobs 때때로 실행되지, 또는 MySQL의 이벤트를하지 않는 한 이것은, 강력한 접근 방식 새 데이터베이스로 마이그레이션되었습니다. 플래그가 지정된 레코드 상단의보기는 응용 프로그램이이를 인식 할 필요가 없음을 의미합니다. – pilcrow

1

예약 된 작업을 실행해야합니다. 삽입/생성 시간이 현재 시간에서 24 시간이 넘는 레코드를 삭제하십시오. 현재 "생성 시간"필드가 없다면 비교 대상을 만들 수 있도록 만들어야합니다.

매 30 분, 1 시간 또는 몇 번이나 업데이트를 실행해야합니까?

현재 예약에 대한 자세한 내용을 확인할 수 있습니다

MySql Event Scheduler

관련 문제