それまでDATEやDATETIMEによるパーティショニングではTO_DAYS()関数を使って数値に変換する必要があったけど、MySQL 5.5からはRANGE COLUMNSを使うことによって日付や時刻をそのまま書けるようになった。 DATETIMEだとこんな感じ。DATEも同様。 /* パーティショニングに使うカラムを主キーに入れる必要があるのは相変わらず */ ALTER TABLE events DROP PRIMARY KEY, ADD PRIMARY KEY(id, created_at); /* RANGEではなくRANGE COLUMNS、パーティショニングするカラムの比較値もそのまま */ ALTER TABLE events PARTITION BY RANGE COLUMNS(created_at) ( PARTITION p201303 VALUES LESS THA