Skip to content

Поиск медленных запросов в PostgreSQL

Пересказ статьи Shailesh Kumar Mishra. Find slow queries in PostgreSQL


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

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

Введение в работу с данными JSON в PostgreSQL

Пересказ статьи Suffyan Asad. An introduction to working with JSON data in PostgreSQL


PostgreSQL позволяет хранить и манипулировать данными JavaScript Object Notation (JSON). JSON является популярным форматом хранения данных и обычно используется для передачи данных в виде наборов ключ-значение.

Ссылка на стандарт JSON.

Эта статья является введением в возможности PostgreSQL по хранению и манипуляции данными JSON. Рассматриваются типы данных json и jsonb для столбцов JSON, запросы данных JSON, индексы JSON, сопровождаемые примерами.
Продолжить чтение "Введение в работу с данными JSON в PostgreSQL"

Руководство по секционированию таблиц в PostgreSQL

Пересказ статьи Rasiksuhail. Guide to PostgreSQL Table Partitioning


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

В этом руководстве объясняется концепция секционирования в PostgreSQL и обсуждается, как это способствует улучшению производительности запросов и эффективному управлению данными.
Продолжить чтение "Руководство по секционированию таблиц в PostgreSQL "

Генерация тестовых данных с помощью встроенных возможностей базы данных

Пересказ статьи Denis Magda. Sample Data Generation With Built-In Database Capabilities


Имеется много способов генерации фиктивных данных для базы данных. Вы можете создать генератор данных, используя Mock-сервисы для тестирования, или получить подмножество собственных производственных данных. Помимо этого многие базы данных предлагают встроенные возможности для создания синтетических данных.

В этой статье вы узнаете, как использовать специальные функции базы данных, иерархические запросы и рекурсивные общие табличные выражения (CTE) для генерации тестового набора данных в PostgreSQL, MySQL, Oracle и SQL Server.
Продолжить чтение "Генерация тестовых данных с помощью встроенных возможностей базы данных"

Ранжирование в Python и SQL

Пересказ статьи Nathan Rosidi. Ranking in Python and SQL


Мы обсуждали основы ранжирования в Python в нашем руководстве “Methods for Ranking in Pandas”, где рассматривались наиболее употребимые параметры функции ранжирования в Pandas. В частности, мы изучали различные методы ранжирования, которые имеют решающее значение в борьбе с родственными значениями. Помимо методов ранжирования функция ранжирования в Pandas обладает и другими параметрами, которые позволяют выполнить дальнейшую настройку и уточнение способа определения рангов. Понимание этих параметров важно при работе с наборами данных, которые требуют более таких сложных методов ранжирования, как процентильное ранжирование или работа с недостающими данными.

Продолжить чтение "Ранжирование в Python и SQL"

Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов

Пересказ статьи Crafting-Code. Tools and Techniques for Profiling and Debugging Slow-Running SQL Queries


Производительность базы данных является ключевым аспектом любого приложения, и когда запросы SQL начинают тормозить, это может оказать значительное влияние на производительность всей системы.

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

В этой статье мы рассмотрим различные инструменты и методы для обнаружения, анализа и оптимизации медленно выполняющихся SQL-запросов, включая практические примеры кода.
Продолжить чтение "Инструменты и методы для профилирования и отладки медленно выполняющихся SQL-запросов"

Понимание планов в PostgreSQL

Пересказ статьи Muhammad Ali. Understand Explain Plans in PostgreSQL


В предыдущей статье мы обсуждали утилиту pg_stat_statements - инструмент для идентификации запросов, интенсивно использующих ресурсы - памяти, ЦП или ввода/вывода.

Теперь предположим, что вы определились с запросами, которые хотите исследовать дальше. Команда EXPLAIN используется для генерации планов выполнения. Она включает:

Продолжить чтение "Понимание планов в PostgreSQL"

Как работает секционирование в PostgreSQL и почему вас это должно беспокоить?

Пересказ статьи Adam Furmanek. How Does Partitioning Work in PostgreSQL and Why Should You Care?


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

Продолжить чтение "Как работает секционирование в PostgreSQL и почему вас это должно беспокоить?"

Индексы PostgreSQL: что это такое и как они могут помочь

Пересказ статьи Henrietta Dombrovskaya. PostgreSQL Indexes: What They Are and How They Help


В предыдущей статье этой серии мы узнали, как произвести, прочитать и интерпретировать планы выполнения. Мы узнали, что план выполнения предоставляет информацию о методах доступа, которые PostgreSQL использует для выборки записей из базы данных. В частности, мы видели, что в некоторых случаях PostgreSQL использовал последовательное сканирование, а в некоторых - доступ на основе индекса.

Кажется, что было бы неплохо поговорить об индексах до обсуждения планов выполнения, но планы запросов - это хорошее место для начала движения в сторону решения проблем производительности! Здесь мы собираемся поговорить об индексах, зачем они нам нужны, как они могут нам помочь, и как они могут усугубить ситуацию.
Продолжить чтение "Индексы PostgreSQL: что это такое и как они могут помочь"

Параллелизм базы данных в PostgreSQL

Пересказ статьи Mohan Saraswatipura. Database Concurrency in PostgreSQL


Управление параллелизмом является важным аспектом в системах баз данных, которые имеют дело с множеством параллельно выполняющихся транзакций. В PostgreSQL применяются различные методы для обеспечения параллельного доступа к базе данных при поддержке согласованного состояния данных с использованием свойств атомарности и изоляции ACID (атомарность, согласованность, изоляция и длительность).
Продолжить чтение "Параллелизм базы данных в PostgreSQL"

Что такое план выполнения и как его найти в PostgreSQL

Пересказ статьи Henrietta Dombrovskaya. What Is an Execution Plan and How to Find It in PostgreSQL


В последнем блоге (Когда настройка параметра в PostgreSQL не помогает) мы сравнили несколько планов выполнения для оператора SQL по мере изменения параметров и индексов. При этом не было упомянуто то, что собой представляет план выполнения, как можно получить план выполнения запроса и как интерпретировать результат. В этом блоге мы глубже погрузимся в эту тему.
Продолжить чтение "Что такое план выполнения и как его найти в PostgreSQL"

Понимание предложения ROWS BETWEEN в SQL

Пересказ статьи Rahma Hassan. Understanding the “ROWS BETWEEN” Clause in SQL


В SQL предложение “ROWS BETWEEN” является мощным средством, которое позволяет вам определить окно строк для анализа или вычислений непосредственно в запросе. Указывая диапазон строк, вы можете выполнять вычисления или применять агрегатные функции к подмножеству данных, а не ко всему результирующему набору. Цель данной статьи - сделать понятным предложение “ROWS BETWEEN” и его использование на примерах.
Продолжить чтение "Понимание предложения ROWS BETWEEN в SQL"

Давайте поговорим о схеме базы данных

Пересказ статьи Adron. Let’s Talk About Database Schema


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

Что такое схема?


В целом, в стороне от специфических реализаций в реляционных базах данных, "схема" - это концептуальная основа или проект, который определяет структуру, связи и ограничения данных или информации. Она предоставляет способ описания и организации данных в структурированном виде. Такое понятие схемы не уникально для баз данных; например, в GraphQL схема определяет типы, запросы, мутации и связи между ними, ограничивая набор возможных операций, которые могут выполняться с использованием API, и форму возвращаемых данных. Продолжить чтение "Давайте поговорим о схеме базы данных"

Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM

Пересказ статьи Grant Fritchey. Learning PostgreSQL With Grant Introducing VACUUM


Хотя имеется много функций в PostgreSQL, которые действительно подобны имеющимся в SQL Server, есть и несколько уникальных. Одна из этих уникальных функций называется VACUUM. Для себя я сравниваю ее с tempdb в SQL Server. Не потому, что она действует подобным образом или служит подобным целям. Абсолютно нет. Просто потому, что обе они фундаментальны с точки зрения поведения соответствующих систем, обе достаточно сложны в своей работе, в том, что они делают, и в способах, которыми мы можем их испортить.
Продолжить чтение "Изучаем PostgreSQL вместе с Grant Fritchey: введение в VACUUM"

Роль в PostgreSQL. Часть 1

Пересказ статьи Shivayan Mukherjee. The PostgreSQL Role: Part 1


В этой статье рассматривается объект роли в базе данных PostgreSQL, который группирует вместе одну или более привилегий и может быть присвоен пользователям. Роль представляет собой коллекцию разрешений или привилегий, которые могут быть предоставлены одному или более пользователям или другим ролям. Продолжить чтение "Роль в PostgreSQL. Часть 1"