MariaDB на VPS: оптимизация и тюнинг производительности — иллюстрация к статье Storm Cloud Blog, категория DevOps
MariaDB на VPS: оптимизация и тюнинг производительности — иллюстрация к статье Storm Cloud Blog, категория DevOps
DevOps·2 мин··

MariaDB на VPS: оптимизация и тюнинг производительности

Тюнинг MariaDB на VPS: innodb_buffer_pool, соединения, индексы, slow query log. WordPress и Laravel без тормозов на 2 GB RAM.

Краткий ответ: на VPS с 2 GB RAM задайте innodb_buffer_pool_size = 512M–768M, включите slow query log, проверьте индексы. MariaDB по умолчанию жадная — без тюнинга съест всю память.

MariaDB — форк MySQL, дефолт для Ubuntu и WordPress. Сравнение с PostgreSQL — MySQL vs PostgreSQL.


MariaDB vs MySQL на VPS

MariaDB MySQL 8
Лицензия GPL Dual
WordPress Нативно Нативно
Производительность Сопоставима Сопоставима
На Ubuntu apt install mariadb Отдельный репо

Для новых проектов на SQL — также рассмотрите PostgreSQL.


Базовый тюнинг для 2 GB VPS

# /etc/mysql/mariadb.conf.d/50-server.cnf
[mysqld]
innodb_buffer_pool_size = 512M
innodb_log_file_size = 64M
max_connections = 100
query_cache_type = 0
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2
sudo systemctl restart mariadb

Расчёт innodb_buffer_pool

VPS RAM buffer_pool (приложение на том же VPS)
1 GB 256M
2 GB 512M
4 GB 1–1.5G
8 GB 3–4G

Правило: 50–70% RAM, если БД на dedicated VPS — до 80%.


Мониторинг медленных запросов

sudo mysqldumpslow /var/log/mysql/slow.log

Типичные проблемы WordPress/Laravel:

  • SELECT без индекса на meta_key
  • JOIN без индекса
  • ORDER BY на большой таблице

Индексы и EXPLAIN

EXPLAIN SELECT * FROM wp_posts WHERE post_status = 'publish' ORDER BY post_date DESC LIMIT 10;

type: ALL + высокий rows = нужен индекс.


Бэкапы

mysqldump --single-transaction -u root mydb | gzip > backup.sql.gz

Автоматизация + off-site — бэкапы 3-2-1. Хранение — MinIO.


Кэширование поверх MariaDB

  • Redis — object cache WordPress/Laravel
  • Memcached — проще, без persistence
  • Query cache в MariaDB 10.6+ удалён — не включайте

Безопасность

sudo mysql_secure_installation
  • bind-address = 127.0.0.1
  • Отдельный пользователь per app
  • Не открывайте 3306 в интернет

Итог

MariaDB на VPS с 2 GB жизнеспособна после тюнинга buffer pool и индексов. Мониторьте slow log — он покажет 80% проблем.

VPS для БД — StormNet Cloud. PHP-стек — PHP-FPM тюнинг.

Частые вопросы

MariaDB или PostgreSQL для нового проекта?

PostgreSQL — для сложных запросов и JSON. MariaDB — для WordPress и если команда на MySQL-стеке.

Какой innodb_buffer_pool для VPS 2 ГБ?

512–768 МБ, если на том же VPS работает приложение. На dedicated DB VPS — до 1–1.5 ГБ.