railsでのパーティショニング使用
パーティショニングそのものについてはmysql5.1のパーティショニングを使う - d2mrの日記参照
rails経由でパーティショニングの追加をmigrationファイルに以下のように記述する
class AddPartition < ActiveRecord::Migration def self.up # パーティショニングに使う値がプライマリキーでないと怒られるので複合キーに変更する execute("ALTER TABLE entries DROP PRIMARY KEY, ADD PRIMARY KEY (id, updated_at);") # パーティショニングの追加 execute("ALTER TABLE entries PARTITION BY RANGE (TO_DAYS(updated_at)) (PARTITION p200803 VALUES LESS THAN (TO_DAYS('2008-04-01')), PARTITION p200804 VALUES LESS THAN (TO_DAYS('2008-05-01')));") end def self.down # パーティショニングの取り消し execute("ALTER TABLE entries REMOVE PARTITIONING;") # id プライマリキーに戻す execute("ALTER TABLE entries DROP PRIMARY KEY, ADD PRIMARY KEY (id);") end end
複合主キー(composite primary keys)を扱うことになるが、
実質的な主キーはidのみなのでアプリ側を変更する必要はありません。