Эффективное управление памятью при обращении к RDBMS с помощью SQLAlchemy

У меня есть веб-сервис, который должен запросить 10000 номеров из RDBMS, а затем вернуть их в виде JSON. Здесь есть два вопроса.

  1. Как объединить их эффективным способом? Я считаю, что получение результата += следующий идентификатор не очень хорошая идея. Stackru советует использовать.join - это элегантно, но я не уверен, как он распределяет память
  2. Насколько я понимаю,.fetchAll() может быть немного дороже здесь, потому что это изначально

Есть ли способ в Python для выборки строка за строкой, взять из строки только одно число и добавить к результату некоторым эффективным способом.

Образец немного искусственный, для простоты.

Короткое решение "Вероятно, Memory Hog", которое я имею в виду, выглядит примерно так:

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 и способ извлечения строки за строкой из БД.

0 ответов

Другие вопросы по тегам