このページは機械翻訳したものです。
MySQL Shell 8.0.20 から、X プロトコル 接続および クラシック MySQL プロトコル 接続の場合、MySQL Server インスタンスへの接続を管理するセッションオブジェクトを作成するたびに、その接続の圧縮が必要か、優先か、無効かを指定できます。
required
はサーバーから圧縮接続をリクエストし、サーバーが圧縮をサポートしていないか、圧縮プロトコルで MySQL Shell と一致しない場合、接続は失敗します。サーバーが圧縮をサポートしていないか、圧縮プロトコルで MySQL Shell に同意できない場合、
preferred
はサーバーから圧縮接続をリクエストし、圧縮されていない接続にフォールバックします。 これは、X プロトコル 接続のデフォルトです。disabled
は圧縮されていない接続をリクエストし、サーバーが圧縮された接続のみを許可している場合、接続は失敗します。 これは、クラシック MySQL プロトコル 接続のデフォルトです。
MySQL Shell 8.0.20 から、接続に使用できる圧縮アルゴリズムを選択することもできます。 デフォルトでは、MySQL Shell は zlib、LZ4 および zstd アルゴリズムを X プロトコル 接続用にサーバーに提案し、クラシック MySQL プロトコル 接続用に zlib および zstd アルゴリズムを提案します (LZ4 アルゴリズムはサポートしていません)。 これらのアルゴリズムの任意の組合せを指定できます。 圧縮アルゴリズムを指定する順序は、MySQL Shell がそれらを提案するプリファレンスの順序ですが、プロトコルおよびサーバー構成によっては、サーバーがこのプリファレンスの影響を受けない場合があります。
圧縮アルゴリズムまたはその組合せを指定すると、接続の圧縮が自動的にリクエストされるため、圧縮が必要か、優先か、無効かを指定するために別のパラメータを使用するかわりに、圧縮を行うことができます。 この接続圧縮制御方法では、オプション uncompressed
(圧縮されていない接続を許可) を圧縮アルゴリズムのリストに追加することで、圧縮が必要か優先かを指定します。 uncompressed
を含める場合は圧縮が推奨され、含めない場合は圧縮が必要です。 uncompressed
を単独で渡して、圧縮が無効であることを指定することもできます。 圧縮が必要、優先または無効であることを別のパラメータで指定すると、圧縮アルゴリズムのリストで uncompressed
を使用するよりも優先されます。
接続の数値圧縮レベルを指定することもできます。これは、X プロトコル 接続の圧縮アルゴリズム、または クラシック MySQL プロトコル 接続の zstd アルゴリズムにのみ適用されます。 X プロトコル 接続の場合、指定した圧縮レベルが最終的に選択されたアルゴリズムに対してサーバーで受け入れられないと、サーバーは X プラグイン での接続圧縮 にリストされている動作に従って適切な設定を選択します。 たとえば、MySQL Shell が zlib アルゴリズムの圧縮レベル 7 を要求し、サーバーの mysqlx_deflate_max_client_compression_level
システム変数 (deflate、または zlib、圧縮の最大圧縮レベルを制限) がデフォルトの 5 に設定されている場合、サーバーは最大許容圧縮レベル 5 を使用します。
MySQL サーバーインスタンスがプロトコルの接続圧縮をサポートしていない場合 (MySQL 8.0.19 for X プロトコル 接続の前の場合)、または接続圧縮をサポートしているが接続アルゴリズムおよび圧縮レベルの指定をサポートしていない場合、MySQL Shell はサポートされていないパラメータを指定せずに接続を確立します。
MySQL Shell 8.0.20 からの接続の圧縮をリクエストするには、次のいずれかの方法を使用します:
-
コマンドラインから MySQL Shell を起動し、別のコマンドオプションを使用して接続パラメータを指定する場合は、
--compress
(-C
) オプションを使用して、接続の圧縮が必要か、優先か、無効かを指定します。 例:shell> mysqlsh --mysqlx -u user -h localhost -C required
--compress
(-C
) オプションは、以前のリリースの MySQL Shell (MySQL 8.0.14 に戻る) と互換性があり、これらのリリースのブール設定を受け入れます。 MySQL Shell 8.0.20 から、パラメータを指定せずに--compress
(-C
) のみを指定した場合、接続には圧縮が必要です。前述の X プロトコル 接続の例では、zlib、LZ4 および zstd アルゴリズムをこの優先順位でサーバーに提案しています。 圧縮アルゴリズムの代替の組合せが必要な場合は、
--compression-algorithms
オプションを使用して、許可されているアルゴリズムのカンマ区切りリストで文字列を指定することで、これを指定できます。 X プロトコル 接続の場合、zlib
、lz4
およびzstd
を任意の組合せおよび順序で使用できます。 クラシック MySQL プロトコル 接続の場合、zlib
およびzstd
を任意の組合せおよび順序で使用できます。 クラシック MySQL プロトコル 接続の次の例では、zstd アルゴリズムのみが許可されます:shell> mysqlsh --mysql -u user -h localhost -C preferred --compression-algorithms=zstd
--compress
(-C
) オプションを指定せずに--compression-algorithms
のみを使用して、圧縮をリクエストすることもできます。 この場合、非圧縮接続を許可する場合はアルゴリズムのリストにuncompressed
を追加し、許可しない場合は省略します。 この形式の接続圧縮制御は、mysql、mysqlbinlog などの他の MySQL クライアントと互換性があります。 クラシック MySQL プロトコル 接続の次の例は、preferred
が別のオプションとして指定されている (つまり、zstd アルゴリズムで圧縮を提案するが、圧縮されていない接続にフォールバックする) 前述の例と同じ効果があります:shell> mysqlsh --mysql -u user -h localhost --compression-algorithms=zstd,uncompressed
--compression-level
または--zstd-compression-level
オプションを使用して圧縮レベルを構成できます。これらのオプションは、クラシック MySQL プロトコル 接続に対しては検証されますが、X プロトコル 接続に対しては検証されません。--compression-level
では、X プロトコル 接続の場合はアルゴリズムの圧縮レベルに整数を指定し、クラシック MySQL プロトコル 接続の場合は zstd アルゴリズムにのみ整数を指定します。--zstd-compression-level
では、zstd アルゴリズムの圧縮レベルに 1 から 22 の整数を指定し、mysql や mysqlbinlog などの他の MySQL クライアントと互換性があります。 たとえば、X プロトコル 接続の次の接続パラメータは、圧縮がグローバルセッションに必要であり、リクエストされた圧縮レベルが 5 の LZ4 または zstd アルゴリズムを使用する必要があることを指定します:shell> mysqlsh --mysqlx -u user -h localhost -C required --compression-algorithms=lz4,zstd --compression-level=5
-
URI に似た接続文字列を使用して、コマンドライン、MySQL Shell
\connect
コマンド、shell.connect()
,shell.openSession()
,mysqlx.getSession()
,mysql.getSession()
またはmysql.getClassicSession()
関数のいずれかから接続パラメータを指定する場合は、クエリー文字列でcompression
パラメータを使用して、圧縮が必要か、優先か、無効かを指定します。 例:mysql-js> \connect user@example.com?compression=preferred
shell> mysqlsh mysqlx://user@localhost:33060?compression=disabled
コマンドラインオプションと同様に、
compression-algorithms
パラメータを使用して圧縮アルゴリズムを選択し、compression-level
パラメータを使用して圧縮レベルを選択します。 (URI のような接続文字列には、zstd 固有の圧縮レベルパラメータはありません。)compression
パラメータを指定せずにcompression-algorithms
パラメータを使用することもできます。これには、圧縮されていない接続を許可または禁止するuncompressed
オプションも含まれます。 たとえば、これらの両方の接続パラメータのセットでは、圧縮は推奨されますが、圧縮されていない接続が許可され、zlib および zstd アルゴリズムが受け入れられ、圧縮レベル 4 を使用するように指定します:mysql-js> \connect user@example.com:33060?compression=preferred&compression-algorithms=zlib,zstd&compression-level=4
mysql-js> \connect user@example.com:33060?compression-algorithms=zlib,zstd,uncompressed&compression-level=4
-
キーと値のペアを使用して、MySQL Shell
\connect
コマンド、shell.connect()
,shell.openSession()
,mysqlx.getSession()
,mysql.getSession()
またはmysql.getClassicSession()
関数のいずれかで接続パラメータを指定する場合は、オプションのディクショナリでcompression
パラメータを使用して、圧縮が必要か、優先か、無効かを指定します。 例:mysql-js> var s1=mysqlx.getSession({host: 'localhost', user: 'root', password: 'password', compression: 'required'});
compression-algorithms
パラメータを使用して圧縮アルゴリズムを選択し、compression-level
パラメータを使用して、コマンドラインおよび URI のような接続文字列メソッドと同様に圧縮レベルを選択します。 (キーと値のペアの zstd 固有の圧縮レベルパラメータはありません。)compression
パラメータを指定せずにcompression-algorithms
パラメータを使用することもできます。これには、圧縮されていない接続を許可または禁止するuncompressed
オプションも含まれます。