Spec-Zone.ru › MySQL Shell 9.2

4.3.8.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 \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, как и в командных строковых опциях. (Для строки подключения в формате URI нет параметра уровня сжатия, специфичного для zstd.) Вы также можете использовать параметр 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 \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-9.2-en/mysql-shell-compressed-connections-8020.html

Spec-Zone.ru

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