Skip to content

Как работает секционирование в 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"

SQL - перечисляемые типы данных

Пересказ статьи Rubihali. SQL — Repeated Data Types


Перечисляемые типы данных более сложны для запроса, чем обычные типы данных, такие как текст, строка, целые числа или дата/время. Здесь мы рассмотрим эти сложные типы данных на нескольких примерах.
Продолжить чтение "SQL - перечисляемые типы данных"

Когда настройка параметра в PostgreSQL не помогает

Пересказ статьи Henrietta Dombrovskaya. When PostgreSQL Parameter Tuning is not the Answer


Так много говорится о настройке параметров, и это всегда помогает?

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

Хотя некоторая настройка параметров действительно может улучшить производительность базы данных, мы обычно говорим о 10%, 20% и в более редких случаях о 50% улучшении производительности, если некоторые параметры установлены плохо. Эти цифры могут звучать впечатляюще, но индивидуальная рутинная оптимизация запроса делает его выполнение в несколько раз быстрее, а в некоторых случаях в десять и более раз быстрее, а реструктуризация приложений может улучшить общую производительность системы в сотни раз!
Продолжить чтение "Когда настройка параметра в PostgreSQL не помогает"

Шесть вещей для мониторинга в PostgreSQL

Пересказ статьи Ryan Booz. Six Things to Monitor with PostgreSQL


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

Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey

Пересказ статьи Grant Fritchey. Querying PostgreSQL: Learning PostgreSQL with Grant


Написание запросов для получения данных из базы является, вероятно, единственной наболее общей задачей при работе с данными. Работа с данными в PostgreSQL не является исключением. Более того, PostgreSQL имеет несомненно богатый, широкий и разнообразный набор механизмов для извлечения данных. От стандартного SELECT… FROM… WHERE до оконных функций и рекурсивных запросов, PostgreSQL имеет все это. Честно говоря, я не могу обещать рассмотреть все это в единственной статье. Кроме того, поскольку большая часть функциональности фактически идентична той, с которой я чувствую себя более уверенно (SQL Server), я не превращаю это в PostgreSQL 101 для оператора SELECT. Продолжить чтение "Запросы в PostgreSQL: изучаем PostgreSQL вместе с Grant Fritchey"

Манипуляция данными в PostgreSQL: учим PostgreSQL вместе с Grant Fritchey

Пересказ статьи Grant Fritchey. Manipulating Data In PostgreSQL Learning PostgreSQL with Grant


До сих пор в этой серии я показал, как создать базу данных, таблицы, ограничения, индексы и схемы. Пришло время привлечь эту информацию для работы и начать процесс манипуляции данными в базе данных. В конце концов, база данных полезна только тогда, когда в ней есть информация. PostgreSQL применяет стандарт SQL для операций типа INSERT, UPDATE и DELETE. Однако, насколько я смог познакомиться с PostgreSQL, имеется несколько довольно интересных нюансов, которые бросаются в мои глаза “SQL Server”.
Продолжить чтение "Манипуляция данными в PostgreSQL: учим PostgreSQL вместе с Grant Fritchey"

Основы PostgreSQL: шаблон для управления привилегиями базы данных

Пересказ статьи Ryan Booz. PostgreSQL Basics A Template for Managing Database Privileges


В первых двух статьях этой серии, посвященной привилегиям в PostgreSQL, мы рассмотрели создание ролей, предоставление им привилегий на объекты базы данных и важность понятия владения объектом для управления доступом и контроля над базой данных.

Когда дело доходит до управления тем, какие роли могут получать доступ к существующему объекту или изменять его, право владения является высшей привилегией. Поскольку привилегии в PostgreSQL работают по принципу минимальных мыслимых привилегий, владельцу объекта (таблицы, триггера, функции, процедуры и т.п.) необходимо предоставлять (GRANT) привилегию другим ролям. Мы обсуждали то, как это может быть выполнено вручную с помощью команды GRANT всякий раз, когда создается объект, однако это требует времени и легко что-нибудь упустить. Продолжить чтение "Основы PostgreSQL: шаблон для управления привилегиями базы данных"

Копирование в PostgreSQL

Пересказ статьи Shivayan Mukherjee. PostgreSQL Copy


Обзор статьи


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

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

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