使用sqlalchemy插入远程数据库时出现Python性能问题

2024-04-24 20:41:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在我的计算机上运行一个本地python脚本,在发生诸如单击、窗口更改等事件时将记录插入远程数据库。我正在使用sqlalchemy连接到postgres数据库。在

问题是我的电脑慢了很多(我不会那样用的)。我正在使用一个本地sqlite数据库进行测试,它工作得很好,然后切换到远程postgres,出现了这个性能问题。在

我知道python是同步的,http请求很慢,但我有4个内核,所以从技术上讲,其他进程不会慢这么多。我怎样才能避免这种情况?我在窗户上跑步。在

更新: 事件的频率非常高,因为每次单击、窗口更改和一些击键都会触发插入。在


Tags: 脚本数据库httpsqlite远程sqlalchemy进程计算机
1条回答
网友
1楼 · 发布于 2024-04-24 20:41:38

您所看到的减速是到服务器的网络连接的延迟。在

如果要在for循环中插入行,则每行都将创建并对数据库执行一个查询。在这个过程中,sqlalchemy必须等待每个查询的结果通过网络发回。即使在非常低延迟的网络中,它也可以累积到相当长的时间。在

例如:

Adding 10,000 rows in a loop
Time to insert a row: 1us
Latency to the server: 1ms
Total time: 10,000 * 1ms + 10,000 * 1us = 10,01 s

可以通过一次添加多行来解决此问题。这样,您将只创建一个查询:

例如:

^{pr2}$

相关问题 更多 >