目次
この章では、MySQL でのユーザー定義パーティショニングの実装について説明します。使用している MySQL サーバーがパーティショニングをサポートしているかどうかを判別するには、次のように SHOW PLUGINS
ステートメントの出力を確認します。
MySQL の以前のバージョンには、have_partitioning
変数がありましたが、非推奨となり、MySQL 5.6.1 で削除されました。
mysql> SHOW PLUGINS;
+------------+----------+----------------+---------+---------+
| Name | Status | Type | Library | License |
+------------+----------+----------------+---------+---------+
| binlog | ACTIVE | STORAGE ENGINE | NULL | GPL |
| partition | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ARCHIVE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| BLACKHOLE | ACTIVE | STORAGE ENGINE | NULL | GPL |
| CSV | ACTIVE | STORAGE ENGINE | NULL | GPL |
| FEDERATED | DISABLED | STORAGE ENGINE | NULL | GPL |
| MEMORY | ACTIVE | STORAGE ENGINE | NULL | GPL |
| InnoDB | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MRG_MYISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| MyISAM | ACTIVE | STORAGE ENGINE | NULL | GPL |
| ndbcluster | DISABLED | STORAGE ENGINE | NULL | GPL |
+------------+----------+----------------+---------+---------+
11 rows in set (0.00 sec)
次のようなクエリーを使用して INFORMATION_SCHEMA.PLUGINS
テーブルを確認することもできます。
mysql> SELECT
-> PLUGIN_NAME as Name,
-> PLUGIN_VERSION as Version,
-> PLUGIN_STATUS as Status
-> FROM INFORMATION_SCHEMA.PLUGINS
-> WHERE PLUGIN_TYPE='STORAGE ENGINE';
+--------------------+---------+--------+
| Name | Version | Status |
+--------------------+---------+--------+
| binlog | 1.0 | ACTIVE |
| CSV | 1.0 | ACTIVE |
| MEMORY | 1.0 | ACTIVE |
| MRG_MYISAM | 1.0 | ACTIVE |
| MyISAM | 1.0 | ACTIVE |
| PERFORMANCE_SCHEMA | 0.1 | ACTIVE |
| BLACKHOLE | 1.0 | ACTIVE |
| ARCHIVE | 3.0 | ACTIVE |
| InnoDB | 5.6 | ACTIVE |
| partition | 1.0 | ACTIVE |
+--------------------+---------+--------+
10 rows in set (0.00 sec)
どちらの場合も、出力で partition
プラグインの Status
カラムに値 ACTIVE
が示されていない (それぞれの例で太字で示されています) 場合、使用しているバージョンの MySQL にはパーティショニングサポートが組み込まれていません。
オラクルによって提供されている MySQL 5.6 Community バイナリには、パーティショニングのサポートが含まれています。商用の MySQL サーバーバイナリで提供されているパーティショニングサポートについては、第25章「MySQL Enterprise Edition」を参照してください。
ソースから MySQL 5.6 をコンパイルする場合にパーティショニングを有効にするには、-DWITH_PARTITION_STORAGE_ENGINE
オプションを指定してビルドを構成する必要があります。詳細は、セクション2.9「ソースから MySQL をインストールする」を参照してください。
使用している MySQL バイナリにパーティショニングサポートが組み込まれている場合は、それを有効にするために何も行う必要はありません (たとえば、my.cnf
ファイルに特別なエントリを指定する必要はありません)。
パーティショニングサポートを無効にするには、--skip-partition
オプションを指定して MySQL サーバーを起動します。その場合は、have_partitioning
の値が DISABLED
になります。パーティショニングサポートを無効にすると、既存のパーティション化されたテーブルの表示、およびそれらの削除は行うことができますが (ただし、これを行うことはお勧めしません)、それ以外にそれらを操作したり、データにアクセスしたりすることはできません。
パーティショニングの概要およびパーティショニングの概念については、セクション19.1「MySQL のパーティショニングの概要」を参照してください。
MySQL では、いくつかのタイプのパーティショニングおよびサブパーティショニングをサポートしています。セクション19.2「パーティショニングタイプ」およびセクション19.2.6「サブパーティショニング」を参照してください。
セクション19.3「パーティション管理」では、既存のパーティション化されたテーブルでパーティションを追加、削除および変更する方法について説明しています。
セクション19.3.4「パーティションの保守」では、パーティション化されたテーブルで使用するテーブル保守コマンドについて説明しています。
INFORMATION_SCHEMA
データベースの PARTITIONS
テーブルには、パーティションおよびパーティション化されたテーブルに関する情報があります。詳細は、セクション21.13「INFORMATION_SCHEMA PARTITIONS テーブル」を参照してください。このテーブルに対するクエリーのいくつかの例については、セクション19.2.7「MySQL パーティショニングによる NULL の扱い」を参照してください。
MySQL 5.6 のパーティショニングの既知の問題については、セクション19.6「パーティショニングの制約と制限」を参照してください。
また、パーティション化されたテーブルを使用して作業を行うときに、次のリソースが役に立つことがあります。
追加のリソース MySQL のユーザー定義パーティショニングに関するその他の情報ソースには、次のものがあります。
-
これは、MySQL パーティショニングテクノロジに興味があり実験している人のための公式ディスカッションフォーラムです。MySQL 開発者などからの発表や更新が掲載されています。パーティショニングの開発チームおよびドキュメントチームのメンバーによってモニターされています。
-
MySQL パーティショニングの設計者、およびリード開発者である Mikael Ronström が、MySQL パーティショニングおよび MySQL Cluster に関する記事を頻繁に掲載しています。
-
MySQL を使用している人が関心を持つと思われる MySQL 関連ブログをまとめた MySQL ニュースサイト。MySQL パーティショニングを使用している人が更新しているブログへのリンクをここでチェックしたり、自分のブログを追加したりすることをお勧めします。
MySQL 5.6 バイナリは、https://dev.mysql.com/downloads/mysql/5.6.htmlから入手できます。ただし、最新のパーティショニングバグ修正および機能追加が必要な場合は、Bazaar リポジトリからソースを取得できます。パーティショニングを有効にするには、-DWITH_PARTITION_STORAGE_ENGINE
オプションを指定してビルドを構成する必要があります。MySQL のビルドについては、セクション2.9「ソースから MySQL をインストールする」を参照してください。パーティションを有効にした MySQL 5.6 ビルドのコンパイルで問題が発生した場合は、「MySQL Partitioning Forum」をチェックして、問題の解決策がそこにない場合は支援を要請してください。