Базы данных для VPN-панелей

SQLite · MySQL · PostgreSQL

Что тут

Панели VPN (3x-ui, Remnawave, Marzban) хранят где-то список пользователей, лимиты, статистику трафика. Это делает база данных. Основных вариантов три: SQLite, MySQL/MariaDB, PostgreSQL. Каждая имеет свои сценарии.

SQLite

Файловая БД — один .db файл на диске. Не требует отдельного сервера СУБД, всё внутри процесса приложения.

Плюсы: ноль настройки, весь бэкап — один файл.
Минусы: тормозит на большой параллельной нагрузке, не масштабируется.
Кому: одиночный сервер до 50-200 клиентов.

MySQL / MariaDB

Классическая реляционная СУБД. MariaDB — free-fork MySQL после покупки её Oracle. Долгое время был стандартом для веб.

Плюсы: проверено временем, огромная экосистема, легко масштабируется.
Минусы: сложнее чем SQLite, ест 200-500 МБ RAM.
Кому: когда SQLite упирается в производительность / нужен доступ из нескольких процессов.

PostgreSQL

Более продвинутая СУБД с точки зрения фич. Стандарт «серьёзной разработки» с 2010-х.

Плюсы: самая мощная из трёх, лучше на больших нагрузках, богатый SQL.
Минусы: требует настройки, съедает от 500 МБ RAM.
Кому: Remnawave, большая инфраструктура, много нод.

Сравнение

SQLiteMySQL/MariaDBPostgreSQL
Отдельный сервернетдада
RAM минимум~0 МБ (in-proc)200 МБ500 МБ
Установканичего не делатьapt install mariadb-serverapt install postgresql
Backupcp файлаmysqldumppg_dump
Параллельная записьплохохорошоотлично
Масштабированиене масштабируетсяreplicationreplication + partitioning
JSONтекстJSON (медленно)JSONB (нативно)
3x-uiдефолтопциональнонет
Marzbanдадада
Remnawaveнетнеттребуется

Какую выбрать

Правило: начни с SQLite, переезжай на PostgreSQL когда упрёшься. MySQL — исторически, если ты пришёл из мира LAMP.

См. также

← на главную
← на главную