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 件のコメント:
コメントを投稿