You need to enable JavaScript to run this app.
文档中心
云数据库 PostgreSQL 版

云数据库 PostgreSQL 版

复制全文
下载 pdf
管理连接终端
读写分离策略
复制全文
下载 pdf
读写分离策略
开启读写分离后,用户查询将会被发送到主节点或只读节点。如果希望一个符合负载均衡条件的 SQL 在开启读写分离后不被负载均衡、继续发送到主节点,可以采用在 SQL 前加 hint 的方式,通常使用 /*NO LOAD BALANCE*/。​
发送到主节点的查询​
标准 SQL 查询​
  • INSERT,UPDATE,DELETE,COPY FROM,TRUNCATE,CREATE,DROP,ALTER,COMMENT​
  • SELECT ... FOR SHARE | UPDATE​
  • DECLARE,FETCH,CLOSE​
  • SHOW​
  • 比 ROW EXCLUSIVE MODE 更严格的 LOCK 命令​
  • 在事务隔离级别 SERIALIZABLE 中的 SELECT​
  • 部分事务性命令:​
  • BEGIN READ WRITE,START TRANSACTION READ WRITE​
  • SET TRANSACTION READ WRITE,SET SESSION CHARACTERISTICS AS TRANSACTION READ WRITE​
  • SET transaction_read_only = off​
  • 两阶段提交命令:PREPARE TRANSACTION,COMMIT PREPARED,ROLLBACK PREPARED​
  • LISTEN,UNLISTEN,NOTIFY​
  • VACUUM​
  • 大对象创建命令​
  • 多语句查询(multiple SQL commands on single line)​
  • 一些序列方法(nextval and setval)​
自定义 SQL 查询​
当前版本默认定义了一些函数和 SQL 模板,包含这些函数或者匹配上 SQL 模板的查询会转发到主节点。​
  • 包含 nextval,setval,lastval,currval,txid_current,gin_clean_pending_list 函数的查询​
  • 包含以 pg_catalog,pg_,current_,cursor_ 作为前缀的函数的查询​
  • 符合查询模板 .*for update.* 的查询​
发送到只读节点的查询​
  • 不包含在上述的 SELECT 查询​
  • COPY TO STDOUT​
  • EXPLAIN​
  • EXPLAIN ANALYZE and the query is SELECT not including writing functions​
发送到主节点和只读节点​
  • SET​
  • DISCARD​
  • DEALLOCATE ALL​
显式事务转发策略​
  • 在显示事务中,BEGIN 会被同时转发到主节点和只读节点。​
  • 在显式事务中,遇到不能在只读节点执行的查询语句(如 INSERT)之前的查询语句,会发送到只读节点。​
  • 在显式事务中,遇到不能在只读节点执行的查询语句(如 INSERT),会发送到主节点。在这之后的查询语句都会发送到主节点上,这是为了让 SELECT 立即看到 INSERT 的结果。 此行为一直持续到事务关闭或终止。​
​
最近更新时间:2025.11.17 14:48:11
这个页面对您有帮助吗?
有用
有用
无用
无用