古いinactiveレコードのtruncate

件数による、というのが大前提になってしまう。
できるだけ物理削除したくなくて論理削除したい。
古くて通常は使わなくなったレコードも消したくない、どうせ管理系から検索したくなるときは来る。
件数というかテーブルのデータ量なのかな。
物理削除しては、そのぶんのデータ取っておくテーブル or 別db or fileにinsertするのかしら。それも直感だとうげーって感じなんだけど。

具体例としては、ユーザ間でバトルをするんだけど、その履歴を一定期間分はユーザに見せたくて、過去データもそれはそれで取っておきたいよね、という感じ。
expire付けられるストレージ redisとかmemcacheとか使いつつ、memcacheだと消えるけど、logはlogで別のlogどっかーんってところに突っ込むのが自然なのかなあ。expireじゃなくてcronでdelete文流すところに落ち着きそうだけど。
そうすると、たとえば累計2000勝1000敗みたいな表示とか、2000勝でご褒美プレゼントとかがインクリメントする何かになってしまって、あとから再計算するのめんどいというか不可能になりそうでイヤなんだなあ。ログとデータとごっちゃにするなって話かなあ。

activeなデータのアクセスに対するテーブルの分割やshardingなら話はわかるしそのとおりなんだけど。

後出しするとできればrailsから使いたいのです。mysqlのパーティショニングとかrangeとかがうまく使えるのかよくわかってない。

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中