[pgsql-jp: 26324] Re: 一定期間になったらレコードを削除
松嶋祥文
mats @ itboost.co.jp
2002年 6月 8日 (土) 09:31:05 JST
松嶋@ITBoost です。
PHP側での対策ですが
| ログの保存期間を3年とした場合、
| test1のレコードを削除するような機能をつけたいのですがサーバの
| crontab等でバッチをつくり削除するという事くらいしか浮びません・・・。
| あまりスマートなアイディアじゃないですよね。。。
掲示板の表示画面のプログラム内や、ユーザ定義のデータベース
接続用関数など、どこでもいいですが、一定の確率でその処理が
行われるようにするというのはいかがでしょうか?
例えば、
function MyDbConnect() {
$con = pg_connect( ... );
SRand( (double) MicroTime() * 123456 );
if( Rand(0, 1000) <= 20 ) {
pg_exec($con, "delete from log where regist_date + '3 years' < now() " );
}
}
みたいな感じですれば、DB 接続毎に 2% の確率で削除が行われます。
DELETEに非常に時間がかかるようであれば、バックグラウンドで
上記処理が行われるようにするのが良いかとおもいます。詳細は
http://www.itboost.co.jp/phptips/view.php?fCID=21
のあたりを。
| 今のところこれくらいしか浮かんでこないのですが
| PostgreSQL側でそのような事が実装出来たらよいのですが・・・。
すみません、こちらは思いつきません。
--
,-------------+
+---------------------------------------------' |
| システム開発&エンジニアスクール アイティーブースト |
| 取締役副社長 松嶋 祥文 [ mats @ itboost.co.jp ] ,--------------+
| +----------------------------------------------' |
| | ★ Linux 関連の技術情報満載! http://www.itboost.co.jp/ |
+-|■秀和システムより「JSP&サーブレットプログラミング」発売中!■|
+--------------------------------------------------------------+
pgsql-jp メーリングリストの案内