Skip to content

Соединение больших таблиц в SQL. Как быстро загрузить данные: часть 2

Пересказ статьи Mitchell Warr. Joining Big SQL Tables How to Load Data Fast Part 2


В части 1 мы рассмотрели несколько методов ускорения запросов в PostgreSQL.

Давайте исследуем нашу собственную историю и ускорим запрос. Мы создадим набор таблиц для студентов, классов, преподавателей и посещаемости. Для нашего примера диаграмма ERD будет выглядеть как на рисунке ниже.


Continue reading "Соединение больших таблиц в SQL. Как быстро загрузить данные: часть 2"

Оптимизация предложений DISTINCT с помощью EXISTS

Пересказ статьи Andy Brownsword. Optimising DISTINCT Clauses using EXISTS


Предложение DISTINCT может помочь нам быстро убрать дубликаты из результатов запроса. Иногда полезно остановиться и спросить почему. Почему нам необходимо использовать это предложение, почему мы получаем дубликаты из наших данных?

Обычно я вижу это из-за применения JOIN, когда на самом деле нам не нужны все эти результаты. Это может быть проверка «существует ли что-либо», например, делал ли клиент когда-либо заказ раньше. Проблема возникает, когда имеется много возвращаемых строк, например, для постоянного клиента в нашем примере.

Continue reading "Оптимизация предложений DISTINCT с помощью EXISTS"

Параметр log_min_duration_statement в PostgreSQL

Пересказ статьи Dmitry Romanoff. PostgreSQL parameter log_min_duration_statement


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

По умолчанию значение параметра log_min_duration_statement равно -1, что отключает журнализацию операторов.
Установка параметра log_min_duration_statement в 0 приведет к записи операторов любой длительности выполнения.

Замечание. Установка этого параметра в рабочем окружении может привести к большим объемам журналов и значительному выделению дискового пространства.
Continue reading "Параметр log_min_duration_statement в PostgreSQL"