52

假设您在 postgresql 数据库之上运行您的业务。一段时间后,您获得了如此多的流量,以至于单个 postgresql 实例无法处理,因此您希望添加更多实例(水平扩展)以应对增长。

您的数据是相关的,因此可能无法切换到某些键/值解决方案。

你会如何用 postgresql 做呢?

PS。PostgreSQL 版本:9.5

4

1 回答 1

53
  1. 如果它是关于读取繁重的工作负载,那么您应该只添加副本。根据需要添加尽可能多的副本来处理整个工作负载。您可以以循环方式平衡副本之间的所有查询。

  2. 如果它是关于写入繁重的工作负载,那么您应该将数据库分区到许多服务器上。您可以将不同的表放在不同的机器上,也可以将一张表分片到多台机器上。在后一种情况下,您可以通过主键的范围或主键的哈希甚至垂直的行来对表进行分片。在上述每种情况下,您都可能失去事务性,因此请小心并确保事务更改和查询的所有数据都驻留在同一台服务器上。

于 2016-01-17T15:43:48.743 回答