log を管理するDB設計について

DBに格納した log はいずれ削除することになる
ログを削除するときには
指定の時間より古いというような条件を指定して実行する
見かけはDELETE コマンドの実行
しかし
実際の処理は削除対象データを検索してから削除
こういった行単位の削除では検索処理をするので
削除対象が大量になるログで実行するとすさまじい時間になってしまう
また、ログ管理サーバーでは
新しいログデータ投入という、挿入処理
古いログデータ削除という、削除処理
これを繰り返すためデータの断片化が起こりやすく
検索性能が徐々に低下していく
これは windows をつかったことがあるとよく行う
デフラグしないと遅くなるというもの
このため、ログの格納の問題を解決するために
つかわれるのが
テーブルパーティショニング
日付情報をもちいた
レンジパーティショニングを施せば
削除単位がテーブルの一部
から
テーブルそのものになる
こうなれば
DROP コマンドや TRUNCATE コマンドが使えるので
ほぼ一瞬で処理可能
それに、テーブル単位のほうがアーカイブもしやすい
ちなみに、
DROP TRUCNCATE コマンドは
SQLなので、
SQLコマンド で検索するといろいろでてくる
今回は
PostgreSQLのコマンド
http://www.postgresql.jp/document/8.1/html/sql-commands.html
にコマンドが載っていました

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です