この記事では、Azure Database for MySQL フレキシブル サーバーでの制限事項について説明します。 MySQL データベース エンジンでの一般的な制限事項も適用されます。 リソースの制限 (コンピューティング、メモリ、ストレージ) の詳細については、コンピューティングとストレージに関する記事を参照してください。
サーバー パラメーター
Azure Database for MySQL フレキシブル サーバーでは、サーバー パラメーターの値のチューニングがサポートされています。 一部のパラメーターの最小値と最大値 (max_connections、join_buffer_size、query_cache_size など) は、サーバーのサイズを計算する前にコンピューティング レベルによって決まります。 これらの制限と、max_connections や innodb_buffer_pool_size などのサーバー パラメーターの最小値と最大値の詳細については、サーバー パラメーターに関する記事を参照してください。
生成された非表示の主キー
MySQL バージョン 8.0 以降では、すべての Azure Database for MySQL - フレキシブル サーバー インスタンスに対して、生成された非表示主キー (GIPK) が既定で有効になっています。
MySQL 8.0 以降のサーバーでは、非表示の列 my_row_id がテーブルに追加され、その列で主キーが追加されます。InnoDB テーブルは明示的な主キーなしで作成されます。 このため、テーブル作成ステートメントで明示的な主キーも指定されていない限り、my_row_id という名前の列を持つテーブルを作成することはできません。
詳細については、こちらを参照してください。
既定では、GIPK は SHOW CREATE TABLE、SHOW COLUMNS、SHOW INDEX の出力に表示されます。 また、INFORMATION_SCHEMACOLUMNS と STATISTICS テーブルにも GIPK が表示されます。
GIPK とそのデータイン レプリケーションを使用するユース ケースの詳細については、「データを Azure Database for MySQL - フレキシブル サーバーにレプリケートする」を参照してください。
GIPK を無効にする手順
GIPK を無効にする場合は、次の 2 つのオプションがあります。
Azure portal または
OFFを使用して、sql_generate_invisible_primary_key サーバー パラメーターの値を に変更します。Azure Database for MySQL - フレキシブル サーバー インスタンスに接続し、次のコマンドを実行します。
mysql> SET sql_generate_invisible_primary_key=OFF;
lower_case_table_names
Azure Database for MySQL - フレキシブル サーバーでは、MySQL バージョン 5.7 の lower_case_table_names の既定値は 1 です。 この設定を調整する必要がある場合は、サポート チケットを作成することをお勧めします。 パラメーター値を 2 に変更した後は、それを 1 に戻すことができないことを理解することが重要です。
MySQL バージョン 8.0 の場合、サーバーの初期化後に lower_case_table_names 設定を変更することは禁止されています。
詳細については、こちらを参照してください。 Azure Database for MySQL - フレキシブル サーバーでは、MySQL バージョン 8.0 の lower_case_table_names の既定値は 1 です。 このパラメーターを 2 に変更する場合は、MySQL 5.7 サーバーを作成し、変更に関するサポート チケットを作成することをお勧めします。 後で必要に応じて、サーバーをバージョン 8.0 にアップグレードできます。
ストレージ エンジン
MySQL では多くのストレージ エンジンがサポートされています。 次の一覧は、Azure Database for MySQL - フレキシブル サーバーでサポートされている、およびサポートされていないストレージ エンジンを示しています。
サポートされているエンジン
注
- 1 つの MySQL ファイルでサポートされる最大サイズは、Azure Database for MySQL -Flexible サーバーで 8 TB です。
サポートされていないエンジン
特権とデータ操作のサポート
サーバーのパラメーターや設定の多くは、誤ってサーバーのパフォーマンスを低下させたり、MySQL サーバーの ACID (原子性、一貫性、分離性、持続性) プロパティを無効にしたりする可能性があります。 サービスの整合性とサービス レベル アグリーメントを製品レベルで維持するために、Azure Database for MySQL - フレキシブル サーバーは複数のロールを公開しません。
Azure Database for MySQL - フレキシブル サーバーでは、基になるファイル システムへの直接アクセスは許可されません。 一部のデータ操作コマンドはサポートされていません。
サポートされる特権
LOAD DATA INFILEはサポートされていますが、[LOCAL]パラメーターを指定して、それを UNC パス (サーバー メッセージ ブロックを介してマウントされた Azure ストレージ) に転送する必要があります。 MySQL クライアント バージョン 8.0 以降を使用している場合は、接続文字列に-–local-infile=1パラメーターを含める必要があります。MySQL バージョン 8.0 以降では、次の動的特権のみがサポートされています。
サポートされていない特権
データベース管理者 (DBA) のロールは制限されています。 または、新しいサーバーの作成時に割り当てられた管理者ユーザーのロールを使用することもできます。 このロールを使用すると、ほとんどのデータ定義言語 (DDL) およびデータ操作言語 (DML) ステートメントを実行できます。
次の静的特権が制限されています。
移行ツールを使用してバックアップを作成する場合、BACKUP_ADMIN 特権の付与はサポートされていません。
DEFINERは作成にSUPER特権が必要であり、制限されています。 バックアップを使用してデータをインポートしている場合は、CREATE DEFINERコマンドを手動で削除するか、--skip-definerバックアップを実行するときに コマンドを使用します。mysql システム データベースは読み取り専用で、さまざまなサービスとしてのプラットフォーム (PaaS) 機能をサポートしています。
mysqlシステム データベースを変更することはできません。SELECT ... INTO OUTFILEはサービスではサポートされていません。
機能制限
ゾーン冗長の高可用性
ゾーン冗長高可用性構成は、サーバーの作成時にのみ設定できます。 この構成は、Burstable コンピューティング レベルではサポートされていません。
ネットワーク
サーバーの作成後に接続方法を変更することはできません。 "プライベート アクセス (仮想ネットワーク統合)" でサーバーを作成した場合、作成後に "パブリック アクセス (許可された IP アドレス)" に変更することはできません。その逆も同様です。
停止/開始操作
サーバーを停止および起動する操作は、読み取りレプリカ構成 (ソースとレプリカの両方) ではサポートされていません。
スケール操作
プロビジョニングされたサーバー ストレージの縮小はサポートされていません。
サーバー バージョンのアップグレード
データベース エンジンのメジャー バージョン間での自動移行はサポートされていません。 メジャー バージョンをアップグレードする場合は、新しいエンジン バージョンで作成したサーバー上でダンプと復元を使用します。
サーバーの復元
ポイントインタイム リストアを使用すると、新しいサーバーは、基になるソース サーバーと同じコンピューティング構成とストレージ構成になります。 新しく復元されたサーバーのコンピューティングは、サーバーを作成した後にスケールダウンできます。
機能比較
Azure Database for MySQL - 単一サーバーで使用できるすべての機能が Azure Database for MySQL - フレキシブル サーバーで使用できるわけではありません。
Azure Database for MySQL - 単一サーバーと Azure Database for MySQL - フレキシブル サーバーの機能比較の完全な一覧については、Azure での適切な MySQL サーバー オプションの選択に関する記事を参照してください。