将大容量和高访问量的表移动到单独的数据库是个好主意吗?

Gna*_*nam 2 postgresql performance postgresql-9.1

我们的应用程序是基于 Web 的应用程序(建立在多租户架构上),运行 PostgreSQL v9.1.3。我们的应用程序中大约有 450 个表,其中 2-3 个表特定于应用程序中的某个模块,与其他剩余表相比存储了大量记录,并且被应用程序用户频繁访问(读取写入操作) .

为了给出可用记录量的图片/统计数据,目前一个表中有800 万条记录,另一张表中有300 万条记录。我们预计在不久的将来这些表的交易量(同样是读取写入交易)会立即增加/流量,因为我们在这个特定模块中提出了一些令人兴奋的功能。

我的要求问题是,

  1. 因为我们预计这个特定模块的流量很大,所以我们不想让访问应用程序中其他模块的用户因为它可能导致的任何性能问题而受到影响。
  2. 分离/隔离频繁访问的表是一种让我想到的解决方案。分离/移动到不同的数据库是个好主意吗?这种方法的优缺点是什么?
  3. 欢迎和赞赏任何解决方案、评论、方法、建议。

a_h*_*ame 5

如果您将表移动到不同的硬盘,您将获得更多的性能。只要“忙”表和其余表位于同一磁盘上,将该表移动到不同的“文件”(通过将其移动到不同的数据库)不会改变(I/O)性能方面的任何内容.

将 I/O 负载分配到不同的硬盘(和不同的硬盘控制器)很可能会为剩余数据提供更好的性能,因为它不受在繁忙表上完成的 I/O 的影响。

要将表移动到不同的硬盘,您需要创建一个新表空间(当然位于该磁盘上),然后将该表移动到该表空间。