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 ГБ.






