Aurora DSQL支持外键约束及级联操作
亚马逊云科技宣布,Aurora DSQL已支持外键约束,应用可以直接在数据库中维护参照完整性,并使用CASCADE、SET NULL等参照操作。Aurora DSQL是一款无服务器、分布式且兼容PostgreSQL的SQL数据库,面向高可用和高扩展性应用。
该服务通过事务快照验证外键关系,并在提交阶段进行冲突检测,全程不需要锁定数据表。系统会利用隐式KEY SHARE检查相关变更;一旦发现可能破坏约束的事务,就会以序列化错误拒绝提交,而不是让事务持续等待。
因此,应用程序需要自行加入重试机制。对于被大量引用的数据行,官方建议尽量保持键列稳定,避免频繁修改;需要变化的内容可以迁移到非键列,以降低并发事务发生冲突的概率。
亚马逊云科技副总裁兼杰出工程师Marc Brooker表示,Aurora DSQL结合Adjudicator与PostgreSQL的KEY SHARE机制,在提交时检查相关行的变化,同时不会阻塞并发读取。非外键约束读取的扩展性不会受到影响,外键约束读取也不会中断其他读取,在负载分布均衡时具备较好的扩展能力。
外键约束长期被用户视为Aurora DSQL采用和迁移的主要障碍。该服务在2024年re:Invent发布时,社区曾认为缺少外键使其与传统PostgreSQL存在明显差距;相关讨论中,亚马逊云科技工程师也曾确认该功能正在开发。此次上线后,部分用户认为它提升了现有系统迁移的可行性,但也有人担忧分布式架构下的性能影响。
亚马逊云科技指出,对被引用表或引用表执行DML操作时,维护参照完整性会带来额外读取,因此客户应在添加约束前针对实际工作负载进行基准测试。近期Aurora DSQL还新增CloudWatch Database Insights,可按语句提供集群级性能监控与故障排查能力。
本文基于公开渠道信息整理,内容可能存在不准确或遗漏之处,不代表本站立场,如内容涉及侵权或错误,请联系我们处理。
阅读原文