2016-10-05 2 views
3

im с использованием django-tables2 для отображения значений из запроса к базе данных. И все отлично работает. Теперь я использовал панель инструментов Django-dabug и просматривал с ней свои страницы. Больше из любопытства, чем потребности в производительности. Когда lokked на странице с таблицей я увидел, что панель инструментов отладки зарегистрировала более 300 запросов для таблицы с чуть более 300 записей. Я не думаю, что наводнение БД с таким количеством запросов является хорошей идеей, даже если нет влияния на производительность (по крайней мере, не сейчас). Все данные должны поступать только из одного запроса.django-tables2 база данных затопления с запросами

Почему это происходит и как я могу уменьшить количество запросов?

ответ

2

Im отправляю это как будущую ссылку для себя и других, у кого может быть такая же проблема.

После некоторого поиска я узнал, что django-tables2 отправляет один запрос для каждой строки. Запрос был примерно как SELECT * FROM "table" LIMIT 1 OFFSET 1 с увеличением смещения.

Я уменьшил количество вызовов sql, вызвав query = list(query), прежде чем создать таблицу и передать запрос. Оценивая запрос в коде представления python, таблица теперь, похоже, работает с evaulated данными, и вместо сотен есть только один вызов базы данных.

Смежные вопросы