Craig Kerstiens:为多租户设计您的 Postgres 数据库

Craig Kerstiens:为多租户设计您的 Postgres 数据库

💡 原文英文,约1100词,阅读约需4分钟。
📝

内容提要

构建B2B应用程序时,通常会使用多租户模式,即将客户数据分开存储。在数据库方面,可以选择单独的数据库或使用模式。Citus是一个扩展程序,可以透明地将Postgres的分片应用到应用程序中。Citus还提供了一些特殊功能,如citus_stat_statements,用于查看执行哪些查询的租户。支持基于模式的分片。

🎯

关键要点

  • 构建B2B应用程序时,通常采用多租户模式,客户数据分开存储。

  • 数据库设计模式有多种选择,包括每个客户一个数据库和使用模式。

  • 每个客户一个数据库提供最大隔离,但在大规模管理时可能会遇到困难。

  • 使用模式可以实现客户隔离,但需要管理所有模式的迁移。

  • Citus是Postgres的扩展,支持透明的数据分片,适合多租户和实时分析。

  • 在Citus中,数据按租户ID分片,避免跨分片连接,提高性能。

  • Citus_stat_statements功能可以跟踪每个租户执行的查询,帮助识别负载较大的租户。

  • Citus 12支持基于模式的分片,结合PgBouncer可改善连接管理。

  • 对于数百万租户,推荐使用租户区分符的方法,而不是模式分片。

➡️

继续阅读