パーティション
- DBの検索を速くするためにテーブルを内部的に分割する
店舗テーブル
| ID |
都道府県 |
店名 |
登録日 |
| 1 |
北海道 |
鶴亀食堂 |
2022年11月3日 |
| 2 |
東京 |
ラーメン一郎 |
2022年11月3日 |
| 3 |
東京 |
鶴亀食堂 |
2022年11月3日 |
⬇︎
| テーブル |
パーティション |
| 北海道 |
1 |
| 東京 |
2 3 |
| 大阪 |
|
SELECT * FROM 店舗テーブル
WHERE 都道府県=東京 AND 店名=鶴亀食堂
リストパーティション
レンジパーティション
ALTER TABLE 店舗テーブル PARTITION BY RANGE (YEAR(登録日))(
PARTITION p2018 VALUES LESS THAN (2018) ENGINE = InnoDB,
PARTITION p2019 VALUES LESS THAN (2019) ENGINE = InnoDB,
PARTITION p2020 VALUES LESS THAN (2020) ENGINE = InnoDB,
PARTITION pmax VALUES LESS THAN MAXVALUE
);
ハッシュパーティション
注意点
- パーティションよりもまずはインデクス
- WHERE句にキーカラムを含めること
- 外部キー制約が使えない(MySQL)
参考サイト
【DB】パーティションとは?データベースのパフォーマンスを改善するパーティションの仕組み