
# 开通数据库代理后，还是有大量select请求分发到主节点
原因分析：
1. 读权重参数 设置主节点和只读节点的读权重分配，可以控制读请求的分发配比，仅在存在只读节点时生效。
   例如：一主两只读，设置的读权重为1(主):2(只读1):3(只读2)，那么会按照1:2:3将读请求分发到主和只读实例上；如果将读权重设置为0:2:3，会按照2:3将请求分发的只读实例，不会将读请求分发的主实例。
   更多信息，请参见[设置读写分离权重](https://support.huaweicloud.com/usermanual-taurusdb/taurusdb_11_0018.html)。
   
2. 事务 事务中的SQL会发往主，若在查询语句前设置set autocommit=0也会被当作事务处理路由到主实例。
   
3. 连接绑定 执行了Multi-Statements（如"insert xxx;select xxx")当前连接的后续请求会全部路由到主节点；创建临时表的SQL会将连接绑定到主，后续此连接的请求都会到主。需断开当前连接并重新连接才能恢复读写分离。
   
4. 自定义变量 SQL中包含了自定义变量的语句会发到主节点。
   
5. 带锁的读操作（如SELECT for UPDATE）会被路由到主节点。
6. 通过Hint指定SQL发往主实例或只读节点 在读写分离权重分配体系之外，在SQL开头添加hint注释进行强制路由：
   - /\*FORCE_MASTER\*/：强制路由到主节点
   
   - /\*FORCE_SLAVE\*/：强制路由到只读节点
    
7. 会话一致性特性 同一个会话内，对于写入还没有同步到只读节点的数据，读请求也会发送到主节点。
   更多信息，请参见[一致性级别介绍](https://support.huaweicloud.com/usermanual-taurusdb/taurusdb_11_0041.html)。
   
