Django 1.11 Добавляет Более Простые Индексы Базы Данных


Django, высокоуровневая веб-платформа Python, которая позволяет создавать динамические веб-сайты, добавила новые классы, чтобы упростить создание индексов баз данных.

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

Улучшения для индексов баз данных происходят из нового модуля django.db.models.indexes, в котором есть классы для создания индексов. Вы можете создавать составные и пользовательские индексы для баз данных, чтобы оптимизировать запросы к базам данных и ускорить время отклика от баз данных. Класс Index создает индекс b-дерева, как если бы вы использовали db_index в поле модели или index_together в мета-классе модели.

Еще одним дополнением является поддержка визуализации виджетов на основе шаблонов, чтобы упростить настройку виджетов форм. Процесс отрисовки формы можно настроить на нескольких уровнях: 

Виджеты могут указывать имена пользовательских шаблонов.

Формы и виджеты могут указывать пользовательские классы визуализации.

Шаблон виджета может быть переопределен проектом. (Многоразовые приложения, как правило, не должны переопределять встроенные шаблоны, поскольку они могут конфликтовать с пользовательскими шаблонами проекта.) 

Другие улучшения направлены на работу с данными. Теперь вы можете использовать выражения подзапросов для создания явных подзапросов с помощью ORM, избегая необходимости перехода на необработанный SQL. Вы также можете добавить явный подзапрос в набор запросов, используя выражение подзапроса.

Если вы хотите ссылаться на столбцы из внешнего запроса в наборе запросов, теперь есть опция OuterRef, которая позволяет ссылаться на определенное поле. 

Существует также новый квалификатор Exists. Это подкласс подзапроса, который использует инструкцию SQL EXISTS для определения наличия соответствующей строки в подзапросе. Во многих случаях это должно работать лучше, чем подзапрос, так как база данных может остановить оценку подзапроса при обнаружении первой совпадающей строки.


Добавить комментарий