Django: небуферизованный MySQL-запрос - PullRequest
1 голос
/ 19 сентября 2009

Как мне НЕ получить полный набор результатов из mysql, скопированный в память в django? Я перебираю БОЛЬШУЮ таблицу, которая взрывает моего барана при копировании запроса.

Кажется, что mysql использует SSCursor для этой цели, и я могу сделать все это с помощью низкоуровневого интерфейса mysql, но есть ли способ Django сделать это?

1 Ответ

1 голос
/ 19 сентября 2009

Это будет получать 500 элементов за каждую итерацию:

count = Model.objects.count()
chunk = 500
for i in range((count/chunk)+1):
    objs = list(Model.objects.all()[i*chunk:(i+1)*chunk])

Возможно, вы также захотите взглянуть на итератор метода QuerySet () .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...