最近、現場でOracleパーティションについて学び、実システムで利用しています。
結構便利だけど、使ってみないと見えない罠なんかもあったので、己の知見としてまとめておこうと思います。
[参考文献]
テーブル内の大量データを、いくつかの表(パーティション)に分割して保持しようという考え方になります。
今の現場では、約9億件のデータ(3TB)を、年月のパーティション(レンジパーティション)で分割して保持しています。
分割することで、パーティションごとに操作が可能となるため、以下のようなメリットがあります。
①アクセス速度の向上(=パフォーマンスUP)
②データの更新速度の向上(保守運用の効率UP)
パーティションの作り方(データの分け方)にも、いくつか種類があります。
更に、パーティション方法を2つ組み合わせて使うこともできます。
①レンジパーティション
例えば、2022年の売り上げデータを月ごとに分ける、といったことが可能となります。
②リストパーティション
例えば、都道府県ごとに発生したデータをまとめたりすることができます。
③ハッシュパーティション
例えばパーティションを4つ作成した時、その4つのパーティションに均等にデータを配分する方法となります。
そのため、他の方法に比べてデータの偏りをなくすことができます。
パフォーマンスの改善はこれからのIT分野において必須レベルの考え方だと思っています。
こういった利用者の利便性に直結する(でも開発ユーザからは軽視されがち)な部分はしっかりと勉強して活用していきたいなと思います。
また、パーティションには他にも便利な操作機能(ADD、DROP、SPLIT等)も備わっていますが、一部使ってみないと気づかないような、直感的には分かりにくい機能があったので、それについては次回の記事でまとめようと思います。
以上