Aurora PostgreSQL 中的本地写入转发的限制和注意事项
目前,Aurora PostgreSQL 中的本地写入转发有以下限制:
-
RDS 代理不支持本地写入转发。
-
在具有写入转发功能的 Aurora PostgreSQL 中不允许使用某些语句,否则可能产生过时的结果。此外,不支持用户定义的函数和用户定义的过程。因此,默认情况下,数据库集群的
EnableLocalWriteForwarding设置处于关闭状态。在启用它之前,请检查以确保您的应用程序代码不受任何这些限制的影响。 -
写入转发不支持以下类型的 SQL 语句:
注意
这些语句可以由您在应用程序中隐式使用,也可以由 PostgreSQL 协议推断出来。例如,PL/SQL 异常处理可能会导致使用 SAVEPOINT,但该语句不受支持。
-
ANALYZE -
CLUSTER -
COPY -
游标 - 不支持游标,因此在使用本地写入转发之前,请务必将其关闭。
-
数据定义语言(DDL)语句
-
GRANT|REVOKE|REASSIGN OWNED|SECURITY LABEL -
LISTEN / NOTIFY -
LOCK -
SAVEPOINT -
SELECT INTO -
SET CONSTRAINTS -
序列更新:
nextval()、setval() -
TRUNCATE -
两阶段提交命令:
PREPARE TRANSACTION、COMMIT PREPARED、ROLLBACK PREPARED -
用户定义的函数和用户定义的过程。
-
VACUUM
-
您可以考虑将以下 SQL 语句与写入转发一起使用:
-
DML 语句可能由多个部分组成,如
INSERT ... SELECT语句或DELETE ... WHERE语句。在这种情况下,整个语句将转发到写入器数据库实例并在此处运行。 -
数据操作语言 (DML) 语句,如
INSERT、DELETE和UPDATE。 -
EXPLAIN语句和此列表中的语句。 -
PREPARE和EXECUTE语句。 -
SELECT FOR { UPDATE | NO KEY UPDATE | SHARE | KEY SHARE }语句。