0

我有网络服务需要从 RDBMS 查询 10000 个数字,然后以 json 的形式返回它们。这里有两个问题。

  1. 如何以有效的方式连接它们?我相信让 result += next id 不是个好主意。Stackoverflow 的建议是使用 .join - 它很优雅,但我不确定它如何处理内存分配
  2. 据我了解 .fetchAll() 在这里可能有点贵,因为它最初是

它是 Python 中逐行获取的一种方式,只从行中获取一个数字并以某种有效的方式相加。

为简单起见,示例有点人为。

我想到的“可能是内存猪”的简短解决方案大致如下所示:

s = text("select id from users where ... ")
connection = engine.connect()
with connection :
    rows = connection.execute(s).fetchall()
    return "["+','.join(str(r[0]) for r in rows) + "]" # json array

我知道这一切看起来都是人为的,一次提取 10000 条记录并不是一个好主意,但我想了解 Python 内存管理的最佳实践。

在我来自的 Java 世界中,有 StringBuilder 类和从 DB 中逐行获取的方法。

4

0 回答 0