Фильтры Django увеличивают потребление оперативной памяти на пользователя: Python - PullRequest
0 голосов
/ 30 августа 2018

Я не знаю, где еще я мог бы задать этот вопрос, задав его здесь. Я хочу знать, что если я наложу несколько фильтров Django на страницу, использующую несколько таблиц БД, это повлияет на потребление оперативной памяти, когда пользователь заходит на эту страницу, потому что до того, как пользователь отразит только отфильтрованные данные. Я использую django с postgresql на виртуальной машине на основе Ubuntu, также, если есть какая-либо документация, которая может быть полезна для понимания использования оперативной памяти, пожалуйста, предложите.

1 Ответ

0 голосов
/ 30 августа 2018

Фильтры Django и наборы запросов ленивы. На самом деле это означает, что вы на самом деле не обращаетесь к базе данных, пока не оцените их. Цитирование официальной документации -

Внутри QuerySet может быть сконструирован, отфильтрован, разрезан и, как правило, передан без фактического попадания в базу данных. На самом деле никаких действий с базой данных не происходит, пока вы не сделаете что-то для оценки набора запросов.

Таким образом, единственное место, которое занято в вашей оперативной памяти, это фактически список, содержащий набор запросов и вашу программу. Это когда запрос оценивается и данные извлекаются из базы данных, то есть, когда (в зависимости от того, сколько данных извлекается), память заполняется. Кроме того, было бы неплохо взглянуть на итераторов , а также

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