Skip to content

Индексы 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"

Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II

Пересказ статьи Andrea Gnemmi. SQL Server, Oracle and PostgreSQL Database Security Roles, Schemas, Grants, Privileges and Owners - Part II


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

Продолжить чтение "Роли, схемы, привилегии и владельцы в SQL Server, Oracle и PostgreSQL. Часть II"