-
Connector/Node.js 现在支持连接属性作为应用程序可以传递给服务器的键值对。Connector/Node.js 定义了一组默认属性,可以禁用或启用。除了这些默认属性外,应用程序还可以提供自己的一组自定义属性,如下所列:
-
应用程序可以将连接属性指定为
connection-attributes
连接字符串中的参数,或者通过使用connectionAttributes
纯 JavaScript 对象或 JSON 表示法的属性来指定连接配置选项。connection-attributes
参数值必须为空(与指定相同 )true
、一个Boolean
值(true
或false
以启用或禁用默认属性集)或零个或多个key=value
以逗号分隔的对说明符列表(除了默认属性集外还要发送). 在列表中,缺少键值的计算结果为NULL
.该
connectionAttributes
属性允许使用纯 JavaScript 对象或 JSON 符号将用户定义的属性传递给应用程序以指定连接配置选项。在这种情况下,请在 下的嵌套对象中定义每个属性connectionAttributes
,其中属性名称与属性名称匹配,属性值与属性值匹配。与connection-attributes
, 不同,在使用纯 JavaScript 对象或 JSON 表示法时,如果connectionAttributes
对象包含重复键,则不会抛出任何错误,并且为重复对象键指定的最后一个值将被选为有效属性值。例子:
不发送默认的客户端定义的属性:
mysqlx.getSession('{ "user": "root", "connectionAttributes": false }') mysqlx.getSession('mysqlx://root@localhost?connection-attributes=false') mysqlx.getSession({ user: 'root', connectionAttributes: { foo: 'bar', baz: 'qux', quux: '' } }) mysqlx.getSession('mysqlx://root@localhost?connection-attributes=[foo=bar,baz=qux,quux]')
应用程序定义的属性名称不能以
_
;开头 这些名称是为内部属性保留的。如果未以有效方式指定连接属性,则会发生错误并且连接尝试失败。
有关连接属性的一般信息,请参阅 性能模式连接属性表。
-
client.getSession()
通过仅在需要时重新验证 来优化现有连接的重用 。对于 X DevAPI,通过在第二次和任何后续执行中使用服务器端准备好的语句,可以提高重复执行语句的性能。这发生在内部;应用程序无需采取任何操作,API 行为应与以前相同。对于更改的语句,会根据需要进行重新准备。提供不同的数据值,或不同的
offset()
orlimit()
值,不算作此目的的更改。相反,新值被传递给先前准备好的语句的新调用。
未重用与 MySQL 服务器的空闲池连接;必须重新创建新连接。(漏洞#29436892)
执行
client.close()
没有关闭连接池中的所有关联连接。(缺陷号 29428477)connectTimeout
而不是maxIdleTime
确定连接池中的空闲连接是否被重用而不是创建新连接。(漏洞#29427271)从连接池中释放的连接没有被重置和重用;而是建立了新的连接。(漏洞 #29392088)
文档中的日期值在插入集合时被转换为空对象。(缺陷 #29179767,缺陷 #93839)
0(无限)以外的
queueTimeout
值会阻止从连接池中获取旧的已释放连接。(漏洞 #29179372,漏洞 #93841)