Spec-Zone.ru › MySQL Shell 8.4

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.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/mysql-shell-compressed-connections-8020.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API