设置Multi-Statements处理模式
前提条件
如需通过管理控制台设置Multi-Statements处理模式,您可以在管理控制台右上角,选择“工单 > 新建工单”,提交代理实例参数修改的申请。
操作场景
当通过数据库代理执行Multi-Statements时,可以根据业务场景选择不同的处理模式,当前处理模式支持Strict、Loose和Parse,默认Strict模式,详细介绍请参见模式描述。
操作步骤
模式描述
更改Multi-Statements模式立即生效,无需重启数据库代理。但如果模式切换前存在由于执行了Multi-Statements导致读写分离失效的连接,不会因为切换模式而恢复读写分离,需要断开重连才能恢复。
- Strict模式(默认)
Multi-Statements会发往主节点,当前连接的后续请求读写分离失效,会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。
该模式不会解析Multi-Statements,性能好,适合短连接、无连接复用场景。
- Loose模式
Multi-Statements会发往主节点,当前连接的后续请求依旧可以读写分离。
该模式不会解析Multi-Statements,性能好,适合Multi-Statements内仅含DML SQL,不含设置session变量、创建临时表、创建存储过程、执行未提交事务等操作的场景。
- Parse模式
该模式下,Multi-Statements会发往主节点,同时数据库代理会解析Multi-Statements,根据Multi-Statements内包含的SQL情况,决定当前连接的后续请求是否恢复读写分离。详细内容请参见Parse模式场景说明。
由于该模式会解析Multi-Statements,对代理性能有一定影响,影响程度与Multi-Statements的长度和复杂性相关,建议Multi-Statements小于100MB,避免数据库代理解析SQL消耗过多的资源,引起性能明显下降。