MySQL 8.0 リファレンスマニュアル MySQL NDB Cluster 8.0 を含む

このページは機械翻訳したものです。

15.8.2 読み取り専用操作用の InnoDB の構成

サーバーの起動時に --innodb-read-only 構成オプションを有効にすることで、MySQL データディレクトリが読取り専用メディアにある InnoDB テーブルをクエリーすることができます。

有効にする方法

読み取り操作用にインスタンスを準備するには、必要なすべての情報が読み取り専用メディア上に格納される前に、データファイルにフラッシュされることを確認します。 変更バッファーが無効になっている (innodb_change_buffering=0) サーバーを実行し、低速シャットダウンを実行します。

MySQL インスタンス全体にわたって読み取り専用モードを有効にするには、サーバーの起動時に次の構成オプションを指定します。

MySQL 8.0 の時点では、innodb_read_only を有効にすると、すべてのストレージエンジンのテーブルの作成および削除操作が防止されます。 これらの操作により、mysql システムデータベースのデータディクショナリテーブルが変更されますが、これらのテーブルは InnoDB ストレージエンジンを使用し、innodb_read_only が有効な場合は変更できません。 ANALYZE TABLEALTER TABLE tbl_name ENGINE=engine_name など、データディクショナリテーブルを変更する操作にも同じ制限が適用されます。

また、mysql システムデータベースの他のテーブルでは、MySQL 8.0 の InnoDB ストレージエンジンが使用されます。 これらのテーブルを読取り専用にすると、テーブルを変更する操作が制限されます。 たとえば、CREATE USER, GRANT, REVOKE および INSTALL PLUGIN 操作は読取り専用モードでは許可されません。

使用シナリオ

この操作モードは、次のような状況に適しています。

注記

この機能の目的は、読み取り専用の側面に基づいた生のパフォーマンスではなく、主に配布および配備する際の柔軟性です。 サーバー全体を読み取り専用にする必要なしで、読み取り専用クエリーのパフォーマンスを調整する方法については、セクション8.5.3「InnoDB の読み取り専用トランザクションの最適化」を参照してください。

動作

--innodb-read-only オプションを使用して、サーバーが読み取り専用モードで実行されると、特定の InnoDB 機能およびコンポーネントが減少したり、完全に無効になったりします。