盯着脱模8.0.20连接器/ J支持数据压缩X DevAPI连接在处理8.0.19后来MySQL服务器。一般可以找到这个功能的详细信息连接压缩与X插件。有关如何配置连接压缩连接器/ J,看到连接属性的描述xdevapi.compression
,xdevapi.compression-algorithms
,xdevapi.compression-extensions
在6.3节,“配置属性”。以下是总结的特点:
连接器/ J 8.0.22之后:压缩算法与服务器协商和谈判的优先级可以使用指定的连接属性xdevapi.compression-algorithms
。它接受一个列表
逗号(,)隔开。如果属性没有设置,默认值的”(算法名称)
_(操作方式)
zstd_stream、lz4_message deflate_stream
”使用。谈判之前订单的优先级算法出现在列表中。显式地设置一个空字符串属性意味着压缩应该被禁用的连接。
当指定的压缩算法xdevapi.compression-algorithms
的别名zstd
,lz4
,缩小
可以用在的地方吗zstd_stream
,lz4_message
,deflate_stream
,分别。
连接器/ J 8.0.21:早些时候,连接器/ J协商后压缩算法优先推荐的X DevAPI:尝试zstd第一,然后LZ4,最后缩小。
所有支持的压缩算法现在MySQL 8.0 X DevAPI连接连接器/ J提供开箱即用的支持缩小;这是因为没有其他的压缩算法(现在LZ4和zstd)现有支持的jre。支持这些算法,客户端应用程序必须提供相应的缩小和膨胀的实现操作的形式OutputStream
和一个InputStream
对象,分别。完成这个最简单的方法是通过使用一个第三方库,比如Apache Commons压缩库,支持LZ4 zstd。连接选项xdevapi.compression-extensions
允许用户配置连接器/ J使用任何支持MySQL服务器的压缩算法,只要有一个Java实现算法。选择需要三胞胎之间用逗号分隔的列表(,),并且每个三联体反过来包含以下元素,由冒号(:)分隔:
这是一个例子,设置对算法的支持lz4_message
和zstd_stream
使用Apache Commons压缩库:
字符串connStr = " jdbc: mysql: / / johndoe: secret@localhost: 33060 / mydb ?”+ "xdevapi.compression-extensions=" + "lz4_message"+":" // LZ4 triplet + FramedLZ4CompressorInputStream.class.getName() + ":" + FramedLZ4CompressorOutputStream.class.getName() + "," + "zstd_stream"+":" // zstd triplet + ZstdCompressorInputStream.class.getName() + ":" + ZstdCompressorOutputStream.class.getName(); SessionFactory sessFact = new SessionFactory(); Session sess = sessFact.getSession(connStr); Collection col = sess.getDefaultSchema().getCollection("myCollection"); // (...) sess.close();
连接器/ J 8.0.21:早些时候,连接属性xdevapi.compression-extensions
上面描述的命名xdevapi.compression-algorithm
连接器/ J 8.0.21早些时候,每个三联体的元素应该用逗号(,)分隔代替冒号(:)。
谈判的压缩算法是企图在默认情况下(xdevapi.compression
=首选
默认情况下),除非连接属性xdevapi.compression
被设置为禁用
。压缩算法的最终选择取决于算法是在服务器上启用。默认情况下,因为不需要压缩,如果谈判失败,连接不会被压缩,但客户仍然能够与服务器通信;然而,如果连接属性xdevapi.compression
被设置为要求
的连接尝试失败时一个错误如果没有算法可以谈判成功。