Лучший способ обрабатывать базу данных по частям с помощью Django QuerySet?

Я выполняю пакетную операцию над всеми строками в базе данных. Это включает в себя выбор каждой модели и что-то с ней делать. Имеет смысл разбить это на части и делать это по частям.

Сейчас я использую Paginator, потому что это удобно. Это означает, что мне нужно упорядочить значения, чтобы их можно было пролистать по порядку. Это действительно генерирует операторы SQL, которые имеют предложения order и limit , и для каждого фрагмента я думаю, что Postgres может сортировать всю таблицу (хотя я не могу утверждать, что имею какие-либо знания о внутреннем устройстве ). Все, что я знаю, это то, что база данных загружена примерно на 50% ЦП, и я думаю, что это слишком много, чтобы делать select s.

Как лучше всего перебирать всю таблицу с учетом требований RDMBS / CPU?

Предполагается, что содержимое базы данных не изменяется во время пакетной операции.

5
задан Charles 3 January 2012 в 03:12
поделиться