postgresql - 分区删除时的 Postgres 分区查询性能
问题描述
我们在 Postgresql 12 上,并希望对一组全部按数据源名称相关的表进行分区。一个源可以有数千万条记录,整个数据集在 2000 个数据源中占大约 900GB 的空间。我们没有更新这些记录的好方法,因此我们正在查看完整转储并在需要更新源数据的任何时候重新加载。这就是我们考虑使用分区的原因,因此我们可以将新数据加载到新分区中,分离(然后删除)当前包含数据的分区,然后将新分区附加到最新数据。查询将通过单个 ID 字段执行。我担心的是,由于我们按源名称进行分区并按分区定义中未使用的 ID 进行查询,因此我们不会
我们应该如何关注这个用例的查询性能?将在被查询的 ID 上定义一个索引,但根据 Postgres 文档,它可能会增加大量计划时间并使用大量内存来为查看许多分区的查询提供服务。
解决方案
性能会受到影响,但这将取决于分区的数量。您拥有的分区越多,计划和执行时间就越慢,因此请保持较低的数字。
您可以通过定义准备好的语句并重用它来节省查询计划时间。
推荐阅读
- ef-fluent-api - 一周想要efcore sql语法,流利的api方法的例子
- c++ - C++线程函数通过引用传递
- python - Python,Selenium 如何忽略 shader_cache 错误?
- node.js - 在nodejs中获取子文档时不支持的投影选项
- python - 从存储在文件中的列表格式的字符串创建 Python 中的数字列表
- reactjs - 反应让 onClick 在组件上只工作一次
- python - 使用 Python 制作 mp3 - 无法打开音乐文件夹
- regex - laravel验证中以大写(unicode)开头的单词
- java - Selenium WebDriver:滚动自定义滚动条,直到它到达所需的元素
- node.js - FFMPEG 命令在 shell 中工作!但不在我的 node.js 中