Мне нужно получить 5 объектов, которые соответствуют определенным сложным критериям, и я не могу/не хочу передавать эти критерии в предложение WHERE (фильтр в django), поэтому мне нужно перебирать результаты, тестируя каждый запишите критерии, пока я не получу свои 5 объектов, после чего я хочу бросить запрос и никогда больше его не увидеть.Как правильно перебирать огромный QuerySet в django?
В большинстве случаев нужные мне записи будут в начале набора запросов, в худшем случае - в конце. Таблица огромна, и мне нужно всего 5 записей. Поэтому мой вопрос: как мне перебирать набор запросов, не используя django для кэширования результатов? Это должно быть сделано так, чтобы ни движок sql/django не записывал и не кэшировал результаты в любом месте.
вы знаете, как отключить кеш в postgresql? (Заставить его использовать курсор) –
Вы можете избавиться от кэшей PostgreSQL в shared_buffers, перезапустив сервер PostgreSQL. Я не знаю, есть ли более удобный способ. Альтернативно, просто установите действительно минимальные общие_буферы, которых достаточно для ваших подключений, поэтому не хватает места для кэшированных данных. –
@Thiado добавил больше материала, когда я отвечу. Надеюсь это поможет. Любая причина, по которой вы не склонны к кешированию? Некоторое тестирование производительности продолжается? –