スポンサードリンク

2012年6月9日土曜日

MySQLパーティショニング

MySQLは、1つのテーブルに大量にデータを登録すると、
検索するときにものすごく時間がかかる。
これは、全部のデータをまず読み込んでから検索するからとのこと。
1つのテーブルの中でインデックスを使うと多少は検索速度向上するが、
大量のデータになるとやはり遅くなる。
大量のデータが登録されることが事前に分かっているのであれば有効なのが、
「パーティショニング」という機能だ。

その設定方法についての備忘録。

※ Noをインデックスとし、Noが0から2000まであるとする。
    このとき、Noが500毎にパーティションを作成する。

mysql > create table テーブル名
mysql >  (
mysql >   No Decimal(5,0)
mysql > , Name varchar(128)
mysql > , Age int
mysql > , KEY Index1 (No)
mysql > constraint KEY_NAME primary key(No)
mysql >  )
mysql > ENGINE=MyISAM DEFAULT CHARSET=utf8 PARTITION BY RANGE(No))
mysql >  (
mysql >    PARTITION p0 VALUES LESS THAN (500)
mysql >    PARTITION p1 VALUES LESS THAN (1000)
mysql > ,  PARTITION p2 VALUES LESS THAN (1500)
mysql > ,  PARTITION p3 VALUES LESS THAN MAXVALUE
mysql >  )

以上

0 件のコメント:

コメントを投稿