#57678·rails

AWS RDS 代理连接固定: prepared_statements: false 通过 SubstituteBinds 将所有绑定值嵌入

作者: jzarnett创建于 2026年6月11日更新于 2026年9月13日
标签stale

我们使用 AWS RDS 代理来连接我们的 AWS RDS Postgres 数据库, 并且我们遇到了大于 16 KB 大小的查询所带来的连接锁定问题。在 `prepared_statements: false` 状态下, `Arel::Collectors::SubstituteBinds` 会将每个绑定值 inline 到 SQL 文本中, 然后语句会离开 Rails。对于 `where(id: array)`, 这意味着数组中的每个元素都会出现在 SQL 字符串中, 语句会随着数组的增长而线性增长。