1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MySQLのパーティションについて

Last updated at Posted at 2022-05-12

まとめ

1つのテーブルを分割して管理できる機能(MySQL 5.1〜)をパーティショニングという。
パーティショニング機能によって分割されたテーブルの単位パーティションという。

パーティショニングを使うメリット

  • パーティション単位でのDROP, CREATEが容易になる
  • パーティションを絞ったSQLクエリを発行することで検索が高速化できる

MySQLでは、過去バージョン〜現行バージョン(8.0系 ※2022/05/12時点)まで、レコード単位で分割する「水平パーティション」のみ対応している。
分割パターンとしては以下が利用できる。

パターン 概要
RANGE 各レコードの1カラム値の「範囲(0〜5, 6〜10,…みたいな形)」で分割
LIST 各レコードの1カラム値の「リスト ([1,3,4], [2,5,6],...みたいな形)」で分割
HASH 各レコードの1カラム値の「ハッシュ値の計算結果」で均等に分割 (分割数と対象とするカラムを指定)
KEY 各レコードのユニークキーであるカラム値の「ハッシュ値の計算結果」で分割(分割数のみ指定)

パーティションの設定はCREATE TABLE時に同時に以下のようなSQL文で行うらしい。

CREATE TABLE
...
PARTITION BY <分割パターン> 
<分割の詳細設定(分割パターンによる)>

あとからさらにパーティションを追加したい場合は以下。

ALTER TABLE <対象テーブル名> ADD PARTITION (
  <分割詳細設定(CREATE TABLE時に設定した分割パターンによる)>
)

作成したパーティションを削除したい(パーティション単位で)場合は以下。

ALTER TABLE <対象テーブル> DROP PARTITION <パーティション追加時に名づけたパーティション名>;

参考

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?