思いつくままプログラミングネタを書き殴ります。アクセスログテーブルを作るアクセスログテーブルの作り方メモです。・アクセスログは一ヶ月ごとに別テーブルで管理します。・アクセスログは1年分は生で保存することにします。そこで、アクセスログテーブルを偶数年12ヶ月、奇数年12ヶ月の24個のテーブルを作ります。2年分必要かというと、例えば6月のアクセスログを入れるためにテーブルをtruncateすると6月頭では11ヶ月分しか生データが存在しないことになってしまうからです。テーブル名は以下のようにします。t_access_log_o12また、簡単にinsertできるようにPostgreSQLのテーブル継承、パーティションの機能を使います。詳しくはここを参照してください。(1);と親のテーブルを指定するだけで、適切な子テーブルに保存されるようになります。基底となるテーブルの作成です。TEXT);session_idとinsert_tsが主キーですが、ここでは宣言しません。継承先でインデックスを指定します。次に継承先のテーブルを作成します。session_id);CHECK制約で適切な年と月を指定しています。次にinsertの実行前に行われるtriggerの実体のストアードプロシージャです。plpgsql;最初のIF文が怪しいですが、気にしない(笑)各IF文の条件は、テーブルのCHECK制約とまったく同じです。最後に、triggerを設定します。t_access_log_insert_trigger();以上で完成です。先ほど記述したINSERT文を実行してみたところ、正しく指定のテーブルに入りました。子テーブルそストアードプロシージャはgroovyで自動生成したので、そのプログラムです。怪しげなIF文の意味がこのプログラムから読み取れます。(12/28)PostgreSQLとRubyを組み合わせてブラックリストチェックの速度を測ってみた。