Category index for “sql”

  • Ловушка при подсчете связанных объектов в Django

    Ловушка при подсчете связанных объектов в Django

    Задача: для каждого объекта подсчитать количество связанных объектов, удовлетворяющих определенному условию.

    Коментарии Читать далее
  • Пробуем JSON в Django и PostgreSQL (и сравниваем с MongoDB)

    Пробуем JSON в Django и PostgreSQL

    В Django 1.9 будет добавлено поле JSONField, его можно использовать с базой данных PostgreSQL >= 9.4. Давайте попробуем с ним поработать и оценить, насколько оно удобно.

    Коментарии Читать далее
  • Отладка SQL в django тестах

    Отладка SQL в django тестах

    В django тестах можно замерять количество сделанных SQL запросов:

    def test_home(self):
        with self.assertNumQueries(1):
            response = self.client.get('/')
        self.assertEqual(response.status_code, 200)
    

    Если код в контексте assertNumQueries сделает иное количество обращений к БД, чем ожидается (здесь 1), то тест выдает ошибку. Но когда такой тест не проходит, бывает трудно определить лишний отправленный запрос. Для отладки такого случая удобно вывести в консоль отправленные SQL запросы. Далее опишу, как этого добиться.

    Коментарии Читать далее
  • Вложенные SQL запросы в Django

    Вложенные SQL запросы в Django

    Вы знали, что Django ORM умеет делать вложенные SQL запросы? К своему стыду я узнал это не так давно.

    Коментарии Читать далее
  • Кеширование queryset.count в django

    Кеширование queryset.count в django

    Как-то обнаружил, что у меня идут несколько одинаковых запросов вида SELECT COUNT(*) .... Оказалось (да, для меня это было новостью :) ), что метод queryset.count() в джанго кешируется по особому. Но лучше начать рассказ издалека.

    Коментарии Читать далее
  • Оптимизация админки django

    Django admin site optimisation

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

    В этом посте я рассмотрю некоторые способы уменьшения количества запросов из админки к БД при использовании __unicode__, содержащего поля связанного объекта (ForeignKey). Думаю, глядя на примеры станет понятнее.

    Коментарии Читать далее