MySQLゆるふわ運用のためのアグレッシブ開発 ~ データを増やさないための設計と運用方針について(主にパーティション活用の話)
TIME rest time current/total
TopicsPlaceHolder

MySQLゆるふわ運用のためのアグレッシブ開発 ~ データを増やさないための設計と運用方針について(主にパーティション活用の話)

MySQL Casual Talks #6

Jul 11th, 2014

Profile

songmu

Recent Output

今日のお話

ゆるふわMySQL運用

最近のハードウェア事情

データをメモリに載せきるために

パーティションの活用

パーティションの制限

パーティションの種類

RANGEパーティション

ALTER TABLE hoge PARTITION BY RANGE COLUMNS (created_date)
    ( 'p20140711' VALUES LESS THAN '2014-07-11' )

range

(RANGE COLUMNSはMySQL5.5以降)

LISTパーティション

ALTER TABLE hoge PARTITION BY LIST (event_id)
    ( 'p1' VALUES IN (1) )

list

created_dateでRANGEパーティションを切ることの功罪

対策(1)

created_dateをDATETIMEじゃなくてDATEにする

メリット

デメリット

対策(2)

created_dateを使わずにidでRANGE PARTITIONを切る

メリット

デメリット

等々

色々メリット・デメリットはあるが、カジュアルにINSERTできるようになるのがパーティションのメリットの一つ

KVSを使って頑張って引き回していた一時セッション情報とかも、カジュアルにINSERTして後で簡単に消せると思えばINSERTへの抵抗感もない

パーティションの運用

Rangeパーティション

Listパーティション

データを増やさない仕組み

論理削除を避ける

そのバッチ処理は必要か

例えばユーザー全員プレゼント等をする場合

データ型に気をつける

パーティションに関する懸念事項

外部キー制約付けられないの厳しいんですが…

古いデータをそう簡単に削除できないんですが…

以上