我正在设计一个 SQL 数据模式,其中包含许多具有复合主键的表(customer_id, id)
。应用程序将经常需要运行JOIN
查询来组合数据。但是,它不应该运行跨客户连接。(严格禁止跨客户加入可能是一个有用的安全功能,但业务需求可能会发生变化。)
我正在研究分布式 SQL 数据库。理想情况下,我想知道跨表的数据在同一个customer_id
分片上存在,因此不需要跨分片执行连接。
我已经阅读了 Vitess、YugabyteDB 和 CockroachDB 的文档。在这三个中,我只相信 Vitess 会将来自同一客户的数据存储在同一节点上。
我错过了 YugabyteDB/CockroachDB 的一个特性吗?