有奖捉虫:办公协同&微信生态&物联网文档专题 HOT
本文介绍 TDSQL-C MySQL 版数据库代理的注意事项。
可设置多个数据库代理访问地址,其数量与数据库代理节点相同,即有多少个节点,则支持设置多少个数据库代理访问地址。
使用代理连接地址进行读写分离时,不保证非事务读的一致性,业务上有读一致性需求可以封装到事务中,或者使用 Hint 语法。
使用代理连接地址时,show processlist 会将所有节点的结果合并后返回。
对于 prepare 语句,数据库代理会先将 prepare 发送到所有节点,当后续的 execute 请求到来时,根据 prepare 的语句类型来决定 execute 的路由。如 prepare 了一个写语句,execute 时会发到主库,而如果 prepare 的是事务外的读语句,则会发送到只读实例。
业务连接到达数据库代理后,代理会连接到读写实例和所有配置的只读实例,数据库代理本身并没有最大连接数的限制,连接数的限制主要由后端数据库实例的最大连接数决定(读写实例和只读实例最大连接数的最小值会影响业务性能)。
开启数据库代理后,新增只读实例或只读实例重启,只有新的连接的请求才会路由到新的只读实例或重启的只读实例,可以通过概览或 性能监控 查看各代理节点的性能指标,若发现各代理节点连接数不均衡的现象,可通过重新负载均衡打散连接。
使用代理连接地址时,如果没有启用事务拆分,事务请求都会路由到主实例。
数据库代理配置支持跨可用区,可选择的可用区数量与当前地域可选可用区数量相关,当可选可用区数量为一个时,表示当前地域可选可用区数量仅有一个。
Serverless 服务只有在关闭自动启停能力时,可开启数据库代理功能。