Postgresql 组织postgres中10个或更多连接的整个表的快速读取的最佳方法

Postgresql 组织postgres中10个或更多连接的整个表的快速读取的最佳方法,postgresql,Postgresql,我有一个表,其中有大约200k-400k条记录,共6列。转储到python的json数组时的大小不超过16MB。 有20个连接,它们在特定时间段将读取整个表。 如何优化此过程?有没有办法“准备”这些数据(可能直接缓存在RAM中)? 您能为此类表提出最佳解决方案吗?PostgreSQL将在第一次读取表时将其缓存在RAM中 例外情况是,如果表大于共享缓冲区的四分之一,则PostgreSQL将使用一个小的环形缓冲区进行顺序扫描,以避免破坏整个缓存。但像这样的小桌子似乎不太可能 如果您还想加快表的第一次

我有一个表,其中有大约200k-400k条记录,共6列。转储到python的json数组时的大小不超过16MB。 有20个连接,它们在特定时间段将读取整个表。 如何优化此过程?有没有办法“准备”这些数据(可能直接缓存在RAM中)?
您能为此类表提出最佳解决方案吗?

PostgreSQL将在第一次读取表时将其缓存在RAM中

例外情况是,如果表大于共享缓冲区的四分之一,则PostgreSQL将使用一个小的环形缓冲区进行顺序扫描,以避免破坏整个缓存。但像这样的小桌子似乎不太可能

如果您还想加快表的第一次扫描,可以显式地将其加载到RAM中:

CREATE EXTENSION pg_prewarm;

SELECT pg_prewarm('table_name');

Postgres已经缓存了数据。此外,如果两个连接正在执行相同的查询,则第二个连接将加入第一个连接所完成的I/O工作(“同步序列扫描”)@如果他们在做不同的查询怎么办?你写的所有人都在读整个表。@a_horse_没有名字我只是想知道如何提高这个表的性能,因为它对于多个连接来说非常小(就像我说的只有几兆字节)。是的,最初将只检索整个表,但我希望在将来按某些条件进行筛选。我想把它优化成ofc。由于表的大小很小,我想这是可能的,把它完全放进RAM。或者只是预编译几个查询,或者类似的东西……正如我所说:一旦检索到数据,Postgres就会将其缓存在RAM中