+7 (495) 107-75-45 Подключение
+7 (495) 107-75-47 Тех. поддержка 24/7
Пример
11.10.2024

Установка PostgreSQL на Debian 12 и отличия от MariaDB

Введение

В этой статье мы рассмотрим процесс установки PostgreSQL на Debian 12. PostgreSQL — это мощная, открытая реляционная база данных с поддержкой множества современных функций, таких как транзакции, параллельные запросы и расширенная работа с данными. Мы также разберем основные отличия PostgreSQL от MariaDB — другой популярной системы управления базами данных, основанной на MySQL.

Шаг 1: Обновление системы

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

sudo apt update
sudo apt upgrade

Это обеспечит отсутствие конфликтов при установке.

Шаг 2: Установка PostgreSQL

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

Для начала установите саму базу данных и необходимые инструменты:

sudo apt install postgresql postgresql-contrib

После завершения установки убедитесь, что PostgreSQL работает:

sudo systemctl status postgresql

Если всё установлено и запущено правильно, вы увидите сообщение о том, что служба активна.

Установка Postgresql

Шаг 3: Настройка PostgreSQL

Пользователь PostgreSQL

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

Для входа в PostgreSQL от имени этого пользователя выполните команду:

sudo -i -u postgres

После этого запустите консоль PostgreSQL:

psql

Теперь вы находитесь в интерактивной оболочке PostgreSQL.

Создание новой базы данных и пользователя

Давайте создадим базу данных и нового пользователя:

В консоли PostgreSQL выполните следующие команды:

CREATE DATABASE mydatabase;
CREATE USER myuser WITH ENCRYPTED PASSWORD 'mypassword';
GRANT ALL PRIVILEGES ON DATABASE mydatabase TO myuser;

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

Настройка PostgreSQL

Шаг 4: Настройка удалённого доступа (по желанию)

По умолчанию PostgreSQL принимает только локальные подключения. Если вы хотите разрешить удалённый доступ к базе данных:

Откройте файл конфигурации:

sudo nano /etc/postgresql/15/main/postgresql.conf

Цифра 15 в пути говорит о том, что это 15 версия. По умолчанию устанавливается именно эта версия, хотя последней является 16 и вот вот, должна выйти 17.

Найдите строку listen_addresses и измените её на:

listen_addresses = '*'

Затем отредактируйте файл контроля доступа:

sudo nano /etc/postgresql/15/main/pg_hba.conf

Добавьте строку для разрешения удалённых подключений:

host    all             all             0.0.0.0/0               md5

Перезапустите PostgreSQL для применения изменений:

sudo systemctl restart postgresql

Теперь PostgreSQL должен быть доступен удалённо.

Отличия PostgreSQL

Отличия PostgreSQL от MariaDB

1. Архитектура и расширяемость

PostgreSQL считается более “чистой” реляционной базой данных, поддерживающей множество современных концепций, таких как полнотекстовый поиск, JSONB (расширенные операции с JSON) и возможность создавать собственные типы данных. В отличие от этого, MariaDB — это форк MySQL, который ориентирован на производительность и совместимость с MySQL.

PostgreSQL:

  • Поддерживает сложные типы данных, такие как массивы и типы JSONB.
  • Имеет мощный механизм расширений, который позволяет добавлять новые функции, индексы, языки программирования и типы данных.
  • Поддерживает ACID (атомарность, согласованность, изолированность, надёжность) и строгие правила транзакционности.

MariaDB:

  • Более совместима с приложениями, которые изначально были написаны для MySQL.
  • Предлагает множество движков хранения данных, таких как InnoDB, Aria, MyRocks, что делает её гибкой в выборе движка под конкретные задачи.
  • MariaDB легче и быстрее при простых операциях, но сложные запросы и масштабируемость в PostgreSQL часто работают эффективнее.

2. Поддержка SQL стандартов

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

PostgreSQL:

  • Лучше соответствует стандартам ANSI SQL.
  • Поддерживает оконные функции, CTE (Common Table Expressions) и рекурсивные запросы.

MariaDB:

  • Поддерживает не все стандарты SQL так же хорошо, как PostgreSQL, но ориентирована на максимальную совместимость с MySQL.

3. Работа с JSON и NoSQL возможностями

PostgreSQL широко известен своей поддержкой JSON и возможностями для работы с полуструктурированными данными.

PostgreSQL:

  • Поддерживает JSONB, который позволяет индексировать и выполнять сложные запросы по данным JSON.
  • Может использоваться как объектно-реляционная и NoSQL база данных одновременно.

MariaDB:

  • Также поддерживает работу с JSON, но эта функциональность не так развита, как в PostgreSQL.

4. Производительность

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

PostgreSQL:

  • Часто используется для высоконагруженных систем с интенсивным использованием транзакций.
  • Оптимизирован для сложных аналитических запросов и больших объёмов данных.

MariaDB:

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

Заключение

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

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