タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

partitioningに関するtoshifusa1423のブックマーク (4)

  • パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合

    MySQL 5.1で追加された機能にパーティショニングがある。これは適切に利用すれば非常に強力な機能であることは間違いないのだが、使いどころが難しい。なぜなら、 インデックスをつけるだけでカバー出来る場合が多い。 パーショニングを使わずに、単にテーブルを分けてしまえばいい。 テーブルが巨大にならないとあまり効果を実感できない。 使い方を間違えると性能が落ちてしまう。 などの問題があるからだろう。 そんなわけで、今日と明日でパーティショニングが役に立つシーンを2つ紹介しようと思う。今日は一つ目、インデックスをつけたいカラムのカーディナリティが低い場合だ。カーディナリティとは日語に訳すと濃度とか訳されるが、要は値の種類(分散具合)のことである。例えば、YesかNoの2つの値しかとらないカラムは非常にカーディナリティが低く、インデックスをつけるととても効率が悪い。インデックスを使って目的の行を

    パーティショニングの使用例 - カーディナリティが低いカラムを使って検索する場合
  • パーティショニングの使用例 - http session情報

    今日もパーティショニングの話の続きである。 パーティショニングが非常にフィットする(たぶん昨日の例よりも)もう一つのケースは、数日間だけ必要なデータを蓄えておくような場合だ。例えば、HTTPセッションやログ情報などが良い例ではないだろうか。そういう場合には、日付を使ってRANGEパーティショニングをするのである。RANGEパーティショニングでももちろんPruningによって性能の向上は出来るのだが、それよりも何よりも高速に不要なパーティションを破棄できるというのが大きい。パーティションの破棄は、内部的にはテーブルのDROPとほぼ同じ扱いなのである。DROPのスピードはストレージエンジンによるが、InnoDBやMyISAM、NDBMySQL Cluster)ならばいくらデータを含んでいても関係なくDROPは一瞬である。テーブルから大量の行を削除すると、フラグメンテーションが発生したり、イン

    パーティショニングの使用例 - http session情報
  • mysql5.1のパーティショニングを使う - d2mrの日記

    mysql5.1の新機能であるパーティショニング(PARTITIONING)を使ってみたので使い方やら注意点やらまとめ。 最初にパーティションの区切りの基準になるカラムはプライマリキーじゃないといけないという制約があるのでプライマリキーを変更する。 ALTER TABLE entries DROP PRIMARY KEY, ADD PRIMARY KEY (id, blog_id); 実際にパーティションに分割する ピンポイント数値で分割 ALTER TABLE entries PARTITION BY LIST (blog_id) ( PARTITION p1 VALUES IN (1,3,7), PARTITION p2 VALUES IN (10,11) ); 数値範囲で分割 ALTER TABLE entries PARTITION BY RANGE (blog_id) ( PAR

    mysql5.1のパーティショニングを使う - d2mrの日記
  • railsでのパーティショニング使用 - d2mrの日記

    パーティショニングそのものについては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 THA

    railsでのパーティショニング使用 - d2mrの日記
  • 1