gpt4 book ai didi

sql - 当 SQL 查询内存不足时会发生什么?

转载 作者:行者123 更新时间:2023-11-29 11:24:36 27 4
gpt4 key购买 nike

我想在 AWS 上设置一个 Postgres 服务器,最大的表将是 10GB - 我是否必须为此实例选择 10GB 的内存?

当我的查询结果大于 10GB 时会发生什么情况?

最佳答案

什么都不会发生,整个结果集没有加载到内存中。在准备结果时,将根据需要使用和重新使用最大可用内存,并将根据需要溢出到磁盘。

参见 PostgreSQL resource documentation了解更多信息。

具体看work_mem:

work_mem (integer) Specifies the amount of memory to be used by internal sort operations and hash tables before writing to temporary disk files.

只要您没有在单个操作或一组并行操作上耗尽工作内存就没问题。

编辑:以上是对以下问题的回答:当您在服务器/实例上查询没有 10GB 内存的 10GB 表时会发生什么情况?

这是更新问题的更新答案:

  • 只使用服务器端资源来生成结果集
  • 假设使用 JDBC 驱动程序,默认情况下,整个结果集将发送到您的本地计算机,这可能会导致内存不足错误

可以通过使用游标改变获取大小来更改此行为。

Reference to this behavior here

Getting results based on a cursor

关于sql - 当 SQL 查询内存不足时会发生什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684362/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com