【问题标题】:Why PostgreSQL execution time is fast but respond is slow?为什么 PostgreSQL 执行时间快但响应慢?
【发布时间】:2022-01-08 10:29:09
【问题描述】:

使用 Google Cloud PostgreSQL 在 Google 控制台上执行简单查询的时间为 3ms,但是当我在 Mac 上从 Python 发送请求时,需要 4 秒才能得到响应,并且打印出来。

我每次运行脚本时都会创建一个连接:

engine = sqlalchemy.create_engine('postgresql://' + username + ':' + password + '@' + host + ':' + port + '/' + database)

然后我用 pandas 发送查询:

df = pd.read_sql_query(e, engine)

这会减慢往返速度吗?我不应该每次都创建一个连接吗?如何获得更快的响应?

查询的 3 毫秒增加到 4 秒得到最终响应 - 如果我将其作为 Web 客户端运行发送正常的 REST API 请求,这会有所改善吗?

【问题讨论】:

  • 您要检索多少数据?行数?数据的大概大小?
  • 打印东西也很贵。为了获得重要的衡量标准,只需丢弃您检索到的行。这样您就可以更好地了解时间的去向。如果可能,还记录第一行的时间(该时间不准确,因为 Postgres 可能会先检索一堆要发送的行,但至少它标志着您的程序可以开始对结果执行某些操作的时间点设置)..
  • 网络带宽也可能是个问题。
  • 谢谢,我正在打印 4-10 行 6 列的数据,这不能把 4ms 变成 4 秒,也许是 python 构建操作?带宽肯定不是问题。

标签: python postgresql google-cloud-platform


【解决方案1】:

我建议您在代码中测试性能。通过这种方式,您可以测量代码行所花费的时间,并确定这是因为您的环境(例如脚本的构建时间)还是由于服务器端的响应而需要更多时间。

为此,您可以使用time Python 库。如何做到这一点的一个例子可能是:

import time

start_time = time.time()

#
# Your code stuff
#

elapsed_time = time.time() - start_time
print('It took {} seconds to run your code'.format(elapsed_time))

【讨论】:

    猜你喜欢
    • 2011-04-29
    • 1970-01-01
    • 2016-10-24
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 1970-01-01
    • 2010-11-11
    • 2019-07-28
    相关资源
    最近更新 更多