问题标签 [psycopg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
postgresql - postgres 是否在缓存我的查询?
我有一个非常简单的 Python 代码片段来运行 Postgres 查询,然后将结果发送到仪表板。我psycopg2
用来定期运行相同的查询。我们暂时不用担心循环机制。
作为参考,实际查询是:
当我运行它时,即使它们应该改变,我仍然得到相同的结果。如果我psycopg2.connect()
用 a 将该行移入循环conn.close()
,则一切正常。然而,根据连接和游标文档,我应该能够一直使用相同的游标(因此,连接)。
这是否意味着 Postgres 在每个客户端连接的基础上缓存我的查询?
python - 使用大型 python 列表和 Psycopg2 快速查询 Postgress 表。
我有一个包含 2000 个以上元素的 python 列表。我有一个 postgress 表,我需要查询这些元素中的每一个,我目前正在使用以下内容。
这样做是为列表中的每个元素一次查询一个表,然后我将这些数据存储在数据框中,然后使用
问题是超过 2000 个元素的响应需要一段时间才能生成,有时会导致我的 webapp 超时或浏览器超时。
我正在寻找一种更快或更有效地查询表中所有元素的方法。
我考虑过为列表中的每个元素使用 for 循环并使用 cur.fetchone() 但我认为这会更慢。
python - 即使在我安装了 psycopg2 之后,也没有名为 psycopg2 的模块
我有
在我的前几行代码中。然而,这表明
即使我安装了 psycopg2
以下是来自终端的详细错误。
另外我尝试在我的python控制台中运行导入并且没有错误,但是,当我运行测试时它有错误
谢谢
python-3.x - Python 3.5.x 多处理在 74% 可用 RAM 系统上抛出“OSError:[Errno 12] 无法分配内存”
multiprocessing
我编写了一个 Python 3.5 应用程序,它使用库生成多个进程。它在配备 2 个 Intel Xeon E2690 v1(每个 8 核)和 96GB RAM 的专用服务器机器上运行在 Ubuntu 16.04.3 LTS 上。
该系统运行一个 PostgreSQL 实例,该实例配置为使用最大约 32GB 的 RAM(effective_cache_size
设置为32GB
),但这只是出于我的问题的目的(我尝试了 、 、 等的几种effective_cache_size
组合work_mem
)shared_buffers
。
每个进程都会打开一个到数据库的连接并多次重复使用它。
这是代码的简化部分,显示了我如何生成一个新进程:
在生成超过 200 个进程后(确切的数量并不总是相同),应用程序在尝试生成新进程时会抛出异常:
ulimit -a
输出是:
在/etc/sysctl.conf
我设置了以下适用于mdadm
PostgreSQL 的参数:
我也尝试设置和取消设置,vm.nr_hugepages
但它并没有解决问题。
在启动我的 Python 应用程序之前,RAM 使用量大约是500 MB
over 96 GB
,所以我可以看到整个 RAM 是相当空的。在产生这 200 多个进程之后,RAM 开始填充并在大约20 GB
(剩余74 GB
仍然空闲)时达到最大值,然后抛出Cannot allocate memory
异常。
问题是:为什么?
我试图测量整个流程的足迹,并找到memory_profiler
了一个 Python 库/工具。我能够得到这张图:
如果我没记错的话,这些都是关于47500 MiB
内存的,所以关于50 GB
“占用”的 RAM。每个进程的footprintf 应约为170 MB
. 问题是我无法在任何地方看到占用的 RAM 量。以下是一些输出:
通过降低 PostgreSQL 所需的内存量,我能够启动 287 个进程,但这总是会导致大量可用 RAM ( 74GB
)。这是我的 PostgreSQL 9.6 ( ) 的配置文件postgresql.conf
:
编辑
我在 SO 上找到了这个答案,并找到了一种直接测量整体内存使用情况的方法。
Python(产生了 288 个进程):
PostgreSQL:
我仍然不明白为什么常用工具(vmstat
, free
, top
, glances
)会显示另一数量的已用 RAM。
python-3.6 - asyncpg 中是否有 register_adapter(在 psycopg 中找到)等效函数
我们是否必须在 asyncpg 中注册适配器才能执行查询,就像在 psycopg 中一样?
http://initd.org/psycopg/docs/extensions.html#psycopg2.extensions.register_adapter
python - 使用 Psycopg2 ExecuteValues 将 SQL 插入 Postgres
我只是尝试使用 Python Psycopg2 模块的 executeValues 函数将新行插入到现有 Postgres 数据库中。我使用它是因为将来我需要进行批量插入,但现在我只测试一行。
这是代码:
我得到的错误如下图所示:
'Sample' 是要插入的表。它包含两个字段:“id”(整数)和“名称”(文本)。'City' 是同一数据库中的另一个表,其中包含一个 'id'(整数)和 'name' 字段(文本),其中 name = 'Boston' 的行已被填充。
我相信错误出现在 valuesList 中的 SELECT 语句中。
有人可以帮忙吗?
谢谢!
python - 如何在python中使用sql查询获取列表?
我在这里定义一个函数并进行查询。
在这一行中应该是一个长度为 7 的列表,但是当我运行print(row[2]) 时,它给我的错误是列表索引超出范围。
这是我得到的错误
python - 错误请求 - 浏览器(或代理)发送了此服务器无法理解的请求
我正在尝试创建一个烧瓶应用程序,其中我在网页上有一个文本框。当按下提交时,它会搜索在 postgres 数据库表的文本框中输入的内容。
我收到以下错误:
错误请求浏览器(或代理)发送了此服务器无法理解的请求。”
我的代码如下:
应用程序.py
和我的html文件:
main.html
我敢肯定,它会很容易解决,但我正在努力,所以任何帮助都将不胜感激。
python - SQLAlchemy 引擎结果代理错误(Flask Python)
我正在创建一个搜索工具,它使用 psycopg、flask 和 SQLAlchemy 从 Postgres 数据库返回结果。
我收到错误:
sqlalchemy.engine.result.ResultProxy 对象在....
当我搜索“工作编号”时,就会发生这种情况。
我被引导相信这是由于没有与 ResultProxy 交互,但我不知道哪里错了?
应用程序.py
主.html
任何帮助将不胜感激。
python - 将数据框复制到具有默认值的列的 postgres 表
我有以下 postgreSql 表stock
,结构如下,列insert_time
有一个默认值now()
我正在尝试copy
以下df
我psycopg
用来上传df
到表stock
收到此错误。
我期待使用 psycopg copy_from 函数,我的 postgresql 表将自动填充插入时间旁边的行。