检测到您已登录华为云国际站账号,为了您更好的体验,建议您访问国际站服务网站 https://www.huaweicloud.com/intl/zh-cn
不再显示此消息
时可能会较长。 步骤3:开启写转发 正常情况下,RegionlessDB集群创建完成后,主实例接收并处理读写请求,从实例只接收读请求。当开启写转发功能后,从实例接收到写请求会自动由从实例转发到主实例进行处理。主实例完成写入后,将数据同步到其他所有从实例。使用写转发可以简化写数据流
新增HTAP标准版实例只读节点 操作场景 在对数据库有少量写请求,但有大量读请求的应用场景下,单个实例可能无法抵抗读取压力,甚至对主业务产生影响。为了实现读取能力的弹性扩展,分担数据库压力,您可以在某个区域中创建一个或多个只读节点,利用只读节点满足大量的数据库读取需求,以此增加应用的吞吐量。
照1:2的比例处理读请求。即主节点处理1/3的读请求,只读节点1处理2/3的读请求,写请求自动发往主节点进行处理。 代理实例2为只读模式,主节点不可选,已选只读节点2和只读节点3,读权重配置为100、200,则只读节点2和只读节点3将按照1:2的比例处理读请求。即只读节点2处理1
照1:2的比例处理读请求。即主节点处理1/3的读请求,只读节点1处理2/3的读请求,写请求自动发往主节点进行处理。 代理实例2为只读模式,主节点不可选,已选只读节点2和只读节点3,读权重配置为100、200,则只读节点2和只读节点3将按照1:2的比例处理读请求。即只读节点2处理1
parallel_queue_timeout 否 请求并行执行的查询的等待时间。如果超过该等待时间后,系统中并行执行的线程数仍然大于parallel_max_threads,则不再等待而进入单线程执行。 lock_wait_timeout 否 试图获得元数据锁的超时时间(秒)。 net_read_timeout
parallel_queue_timeout 否 请求并行执行的查询的等待时间。如果超过该等待时间后,系统中并行执行的线程数仍然大于parallel_max_threads,则不再等待而进入单线程执行。 lock_wait_timeout 否 试图获得元数据锁的超时时间(秒)。 net_read_timeout
连接池设置 使用连接池时,需要设置连接探活机制,确保部分连接超时断开时不会被继续使用。 jdbc连接池和Druid连接池设置: testOnBorrow=true, HikariCP连接池设置: connectionTestQuery=”SELECT 1” 父主题: TaurusDB读写分离最佳实践
连接池设置 使用连接池时,需要设置连接探活机制,确保部分连接超时断开时不会被继续使用。 jdbc连接池和Druid连接池设置: testOnBorrow=true, HikariCP连接池设置: connectionTestQuery=”SELECT 1” 父主题: TaurusDB读写分离最佳实践
如何在业务代码中开启连接池的探活功能? 使用连接池时,需要设置连接探活机制,确保部分连接超时断开时不会被继续使用。 jdbc连接池和Druid连接池设置: testOnBorrow=true, HikariCP连接池设置: connectionTestQuery=”SELECT 1”
如何在业务代码中开启连接池的探活功能? 使用连接池时,需要设置连接探活机制,确保部分连接超时断开时不会被继续使用。 jdbc连接池和Druid连接池设置: testOnBorrow=true, HikariCP连接池设置: connectionTestQuery=”SELECT 1”
查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将sockTimeOut设置合理值。 父主题: 基本使用类
查询慢日志中记录SQL执行65秒,但是扫描行数为0。 原因分析 被中断的查询超过慢日志设置阈值也会记录慢日志,但是所记录的扫描行数为0。客户JDBC连接设置了查询超时: 解决方案 优化SQL或者将sockTimeOut设置合理值。 父主题: 基本使用类
读请求路由到主实例的场景 如果查询语句被放在事务中,事务请求都会路由到主实例。如果在查询语句前设置set autocommit=0时也当做事务处理路由到主实例。 如果所有只读节点都均异常或只读节点权重为0时,则查询会路由到主实例。对于成功开启读写分离功能的实例,您可以设置其主实例
当前连接的后续请求读写分离失效,会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 该模式不会解析Multi-Statements,性能好,适合短连接、无连接复用场景。 Loose模式 Multi-Statements会发往主节点,当前连接的后续请求依旧可以读写分离。
当前连接的后续请求读写分离失效,会全部路由到主节点,需断开当前连接并重新连接才能恢复读写分离。 该模式不会解析Multi-Statements,性能好,适合短连接、无连接复用场景。 Loose模式 Multi-Statements会发往主节点,当前连接的后续请求依旧可以读写分离。
重。读权重默认为100,读权重越高,处理的读请求越多。 选择数据库节点 数据库代理的代理模式不同,分发读请求的目标节点不同。 只读模式:所有读请求按照路由模式转发到已选只读节点,不会转发到主节点。 图3 只读模式 读写模式:所有读请求按照路由模式转发到已选数据库节点。 图4 读写模式
据量的表,避免创建大量的索引,影响更新速度。请根据业务评估,删除不必要的索引。 插入多条数据时,尽量选择批量插入。 因为批量插入只需要远程请求一次数据库。 示例如下: insert into tb1 values(1,'value1'); insert into tb2 values(2
GaussDB(for MySQL)兼容开源MySQL 8.0.22,支持使用ALGORITHM=INSTANT快速添加列,避免造成锁等待影响业务或者SQL执行超时无法新增成功。 约束限制 仅支持在一条语句中添加列,即如果同一条语句中还有其他非INSTANT操作,则无法立即完成。 仅支持最后添加列,不支持添加到表中的任意位置。
据量的表,避免创建大量的索引,影响更新速度。请根据业务评估,删除不必要的索引。 插入多条数据时,尽量选择批量插入。 因为批量插入只需要远程请求一次数据库。 示例如下: insert into tb1 values(1,'value1'); insert into tb2 values(2
TaurusDB兼容开源MySQL 8.0.22,支持使用ALGORITHM=INSTANT快速添加列,避免造成锁等待影响业务或者SQL执行超时无法新增成功。 约束限制 仅支持在一条语句中添加列,即如果同一条语句中还有其他非INSTANT操作,则无法立即完成。 仅支持最后添加列,不支持添加到表中的任意位置。