作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我正在使用带有 sql-alchemy 和 flask 的 postgres 数据库。我有几项工作必须遍历整个数据库才能更新条目。当我在本地计算机上执行此操作时,与服务器相比,我会得到非常不同的行为。例如。我可以从数据库中获取的条目数似乎有上限?在我的本地机器上我只查询所有元素,而在服务器上我必须逐步查询 2000 个条目。如果我有太多条目,服务器会给我消息“Killed”。我想知道1. 谁在扼杀我的工作(sqlalchemy、postgres)?2. 由于这在我的本地机器上似乎表现不同,因此必须有一种方法来控制它。那会在哪里?谢谢卡尔
最佳答案
只是在终端窗口中出现“killed”消息通常意味着内核内存不足并作为紧急措施杀死进程。
默认情况下,大多数连接到 PostgreSQL 的库会将整个结果集读入内存。但是有些库有办法告诉它逐行处理结果,所以它们不会一次全部读入内存。不知道flask有没有这个选项。
也许您的本地机器比服务器有更多的可用 RAM(或者对它确实拥有的 RAM 的需求更少),或者您的本地机器配置为逐行而不是一次从数据库读取。
关于python - postgres 数据库 : When does a job get killed,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35705211/
我是一名优秀的程序员,十分优秀!