4.3.7.1 Управление сжатием для MySQL Shell
Для подключений X Protocol и классических подключений MySQL-протокола, при каждом создании объекта сессии для управления подключением к экземпляру MySQL Server, вы можете указать, требуется ли сжатие, предпочтительно ли сжатие или оно отключено для данного подключения.
requiredзапрашивает сжатое подключение от сервера, и подключение прерывается, если сервер не поддерживает сжатие или не может договориться с MySQL Shell о протоколе сжатия.preferredзапрашивает сжатое подключение от сервера и переключается на несжатое подключение, если сервер не поддерживает сжатие или не может договориться с MySQL Shell о протоколе сжатия. Это значение по умолчанию для подключений X Protocol.disabledзапрашивает несжатое подключение, и подключение прерывается, если сервер допускает только сжатые подключения. Это значение по умолчанию для классических подключений MySQL-протокола.
Вы также можете выбрать, какие алгоритмы сжатия разрешены для подключения. По умолчанию MySQL Shell предлагает серверу алгоритмы zlib, LZ4 и zstd для подключений X Protocol и алгоритмы zlib и zstd для классических подключений MySQL-протокола (которые не поддерживают алгоритм LZ4). Вы можете указать любую комбинацию этих алгоритмов. Порядок, в котором вы указываете алгоритмы сжатия, — это порядок предпочтения, в котором MySQL Shell предлагает их, но сервер может не учитывать это предпочтение, в зависимости от протокола и конфигурации сервера.
Указание любого алгоритма сжатия или комбинации алгоритмов автоматически запрашивает сжатие для подключения, поэтому вы можете сделать это вместо использования отдельного параметра для указания необходимости, предпочтительности или запрета сжатия. С помощью этого метода управления сжатием подключения вы указываете, требуется ли сжатие или предпочтительно ли сжатие, добавив параметр uncompressed (который разрешает несжатые подключения) в список алгоритмов сжатия. Если вы включаете uncompressed, то сжатие предпочтительно, а если нет — сжатие обязательно. Вы также можете передать uncompressed самостоятельно, чтобы указать, что сжатие отключено. Если вы указываете в отдельном параметре, что сжатие обязательно, предпочтительно или отключено, это имеет приоритет над использованием uncompressed в списке алгоритмов сжатия.
Вы также можете указать числовой уровень сжатия для подключения, который применяется к любому алгоритму сжатия для подключений X Protocol или только к алгоритму zstd для классических подключений MySQL-протокола. Для подключений X Protocol, если указанный уровень сжатия не приемлем для сервера для выбранного в конечном итоге алгоритма, сервер выбирает соответствующее значение в соответствии с описанными в . Например, если MySQL Shell запрашивает уровень сжатия 7 для алгоритма zlib, а системная переменная сервера (которая ограничивает максимальный уровень сжатия для сжатия deflate или zlib) установлена по умолчанию в 5, сервер использует максимально допустимый уровень сжатия 5.
Если экземпляр MySQL-сервера не поддерживает сжатие подключения для протокола (что происходит до MySQL 8.0.19 для подключений X Protocol) или если он поддерживает сжатие подключения, но не поддерживает указание алгоритмов подключения и уровня сжатия, MySQL Shell устанавливает подключение без указания этих параметров.
Чтобы запросить сжатие для подключения, используйте один из следующих методов:
-
Если вы запускаете MySQL Shell из командной строки и указываете параметры подключения с помощью отдельных параметров команды, используйте параметр
--compress(-C), чтобы указать, требуется ли сжатие, предпочтительно ли сжатие или оно отключено для подключения. Например:$> mysqlsh --mysqlx -u user -h localhost -C required
Параметр
--compress(-C) совместим с более ранними выпусками MySQL Shell (до MySQL 8.0.14) и по-прежнему принимает логические значения из этих выпусков. Если вы укажете только--compress(-C) без параметра, сжатие обязательно для подключения.В приведенном выше примере для подключения X Protocol предлагаются алгоритмы zlib, LZ4 и zstd на сервер в этом порядке предпочтения. Если вам нужна другая комбинация алгоритмов сжатия, вы можете указать это, используя параметр
--compression-algorithmsдля указания строки с запятыми алгоритмами. Для подключений X Protocol вы можете использоватьzlib,lz4иzstdв любой комбинации и порядке предпочтения. Для классических подключений MySQL-протокола вы можете использоватьzlibиzstdв любой комбинации и порядке предпочтения. Следующий пример для подключения классического MySQL-протокола допускает только алгоритм zstd:$> mysqlsh --mysql -u user -h localhost -C preferred --compression-algorithms=zstd
Вы также можете использовать только
--compression-algorithmsбез параметра--compress(-C), чтобы запросить сжатие. В этом случае добавьтеuncompressedв список алгоритмов, если вы хотите разрешить несжатые подключения, или опустите его, если не хотите этого. Этот стиль управления сжатием подключения совместим с другими клиентами MySQL, такими как mysql и mysqlbinlog. Следующий пример для подключения классического MySQL-протокола имеет тот же эффект, что и пример выше, гдеpreferredуказан как отдельный параметр, то есть предложить сжатие с алгоритмом zstd, но перейти к несжатому подключению:$> mysqlsh --mysql -u user -h localhost --compression-algorithms=zstd,uncompressed
Вы можете настроить уровень сжатия, используя параметры
--compression-levelили--zstd-compression-level, которые проверяются для классических подключений MySQL-протокола, но не для подключений X Protocol.--compression-levelуказывает целое число для уровня сжатия для любого алгоритма для подключений X Protocol или только для алгоритма zstd для классических подключений MySQL-протокола.--zstd-compression-levelуказывает целое число от 1 до 22 для уровня сжатия для алгоритма zstd и совместимо с другими клиентами MySQL, такими как mysql и mysqlbinlog. Например, эти параметры подключения для подключения X Protocol указывают, что сжатие требуется для глобальной сессии и должно использовать алгоритм LZ4 или zstd, с запрошенным уровнем сжатия 5:$> mysqlsh --mysqlx -u user -h localhost -C required --compression-algorithms=lz4,zstd --compression-level=5
-
Если вы используете строку подключения в формате URI для указания параметров подключения, как из командной строки, или с командой MySQL Shell's
\connect, или с функциямиshell.connect(),shell.openSession(),mysqlx.getSession(),mysql.getSession()илиmysql.getClassicSession(), используйте параметрcompressionв строке запроса для указания, требуется ли сжатие, предпочтительно ли сжатие или оно отключено. Например:mysql-js> \connect user@example.com?compression=preferred
$> mysqlsh mysqlx://user@localhost:33060?compression=disabled
Выберите алгоритмы сжатия, используя параметр
compression-algorithms, и уровень сжатия, используя параметрcompression-level, как и для параметров командной строки. (Нет параметра уровня сжатия, специфичного для zstd, для строки подключения в формате URI.) Вы также можете использовать параметрcompression-algorithmsбез параметраcompression, включая или исключая параметр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's
\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-algorithmsбез параметраcompression, включая или исключая параметрuncompressed, чтобы разрешить или запретить несжатые подключения.
© 2025 Oracle
Licensed under the GPLv2 License.