postgresql - 在 postgres 中为 10 个或更多连接组织快速读取整个表的最佳方法
问题描述
我有一张表,里面有大约 200k-400k 条记录,6 列。转储到 python 的 json 数组时的大小不超过 16MB。有 20 个连接,在特定时间段将读取整个表。我怎样才能优化这个过程?有没有办法“准备”这些数据(可能直接缓存在 RAM 中)?您能为此类表格提出最佳解决方案吗?
解决方案
PostgreSQL 将在第一次读取该表时将其缓存在 RAM 中。
一个例外是如果表大于 : 的四分之一,shared_buffers
那么 PostgreSQL 将使用一个小的环形缓冲区进行顺序扫描,以避免耗尽整个缓存。但对于这样的小桌子,这似乎不太可能。
如果您也想加快表的第一次扫描,您可以将其显式加载到 RAM 中:
CREATE EXTENSION pg_prewarm;
SELECT pg_prewarm('table_name');
推荐阅读
- android - Android 通知 setFullScreenIntent 不会自动启动活动
- mysql - 从 LAN 上的另一台 PC 访问 XAMPP 服务器
- c# - Frame.GoBack(NavigationTransitionInfo) 回调
- windows - Powershell 函数返回哈希表
- mongodb - Sailsjs skipper-gridfs 在升级到节点 v14 后无法正常工作
- python - 如何将可变形状的张量输入输入层,然后输入密集层?
- c - 无法在 C 中更新我的列表,指针问题
- intellij-idea - InteliJ 更新到 2020.2 后无法构建项目
- python - 迭代更改 URL 中的日期
- php - php str_shuffle 对希腊字母编码错误