Блог о PostgreSQL от Аристова Евгения

  • Уровни изоляции транзакций PostgreSQL

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

  • Что быстрее count(id) или count(UUID) в PostgreSQL?

    Казалось бы в прошлой статье мы выяснили, что нет разницы между count(id), count(1) или count(*). Давайте теперь узнаем, как же PostgreSQL работает с таким замечательным инструментом как UUID. Общая идея заключается в том, что UUID предоставляет нам способ генерации уникальных идентификаторов без необходимости зависеть от конкретных контекстов или ресурсов. В PostgreSQL, для создания UUID, вы…

  • Транзакции и MVCC в PostgreSQL

    MVCC (Multi-Version Concurrency Control) – это механизм управления параллельным доступом к данным в базе данных, который широко используется в PostgreSQL и других СУБД для поддержки одновременных транзакций (что такое транзакции – здесь). MVCC позволяет разным транзакциям видеть базу данных в разных “версиях” (или состояниях), что обеспечивает высокую степень изоляции и консистентности данных. Как это работает:…

  • Ответ на сount(1) или count(*) в PostgreSQL

    Холиварный вопрос – что же лучше? На самом деле ответ лежит намного глубже. Давайте исследовать. Зальем мою БД по Тайским перевозкам на ~6 млн записей. Загрузим её в наш инстанс PostgreSQL командой: wget https://storage.googleapis.com/thaibus/thai_small.tar.gz && tar -xf thai_small.tar.gz && psql < thai.sql Получили БД объемом 600 Мб – посмотреть можно используя команду \l+ в psql,…

  • Транзакции в PostgreSQL

    Реляционная теория и SQL позволяет абстрагироваться от конкретной реализации СУБД, но есть одна непростая проблема: как обеспечить параллельную работу множества сессий (concurrency), которые модифицируют данные, так, чтобы они не мешали друг другу ни с точки зрения чтения, ни с точки зрения записи и обеспечивали целостность данных (consistency) и их надежность (durability)? Ответ – транзакционные системы…

  • Использование DML (Data Manipulation Language) в PostgreSQL

    Одной из важнейших функций PostgreSQL является возможность выполнения операций манипуляции данными (DML), которые позволяют добавлять, изменять и удалять данные в таблицах. В этой статье мы рассмотрим основы использования DML в PostgreSQL и покажем примеры различных операций. Что такое DML? DML (Data Manipulation Language) – это часть языка SQL, которая позволяет осуществлять манипуляцию данными в базе…