O MariaDB 11.x traz melhorias importantes de performance, mas continua exigindo tuning manual em VPS pequenos. Uma configuração padrão pode consumir memória excessiva e causar lentidão, swap e erros 500.
Este guia mostra como configurar corretamente o MariaDB 11.x em servidores com pouca RAM, com foco em estabilidade, WordPress e produção real.
O que muda no MariaDB 11.x em relação a versões antigas?
O MariaDB 11.x:
- Usa InnoDB (XtraDB removido)
- Possui melhorias no otimizador
- Gerencia melhor threads
- Ainda não é otimizado automaticamente para low memory
👉 Ou seja: o my.cnf continua sendo essencial.
Quanto de RAM o MariaDB 11.x deve usar?
| RAM total | Uso recomendado do MariaDB |
|---|---|
| 1 GB | 256 MB |
| 2 GB | 512 MB |
| 4 GB | 1 GB a 1.5 GB |
O restante da memória deve ficar livre para PHP-FPM, cache e sistema.
Configuração base recomendada (MariaDB 11.x)
[mysqld] user = mysql bind-address = 127.0.0.1 skip-name-resolve max_connections = 50 max_user_connections = 30 wait_timeout = 60 interactive_timeout = 60 table_open_cache = 256 table_definition_cache = 256 thread_cache_size = 32
Essa base reduz overhead e evita consumo excessivo por conexões ociosas.
InnoDB no MariaDB 11.x (configuração crítica)
innodb_buffer_pool_size (principal uso de RAM)
| RAM | Valor recomendado |
|---|---|
| 1 GB | 128M |
| 2 GB | 256M |
| 4 GB | 512M – 1G |
innodb_buffer_pool_size = 256M innodb_buffer_pool_instances = 1 innodb_log_file_size = 64M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT
📌 O MariaDB 11.x lida melhor com I/O, mas ainda precisa de limites bem definidos.
Buffers por conexão (low memory safe)
No MariaDB 11.x, buffers continuam sendo alocados por conexão.
sort_buffer_size = 1M join_buffer_size = 1M read_buffer_size = 512K read_rnd_buffer_size = 512K tmp_table_size = 32M max_heap_table_size = 32M
Esses valores evitam picos de memória com múltiplos acessos simultâneos.
Query Cache no MariaDB 11.x
⚠️ Não use Query Cache.
Mesmo estando disponível no MariaDB, ele:
- Não escala bem
- Prejudica sites dinâmicos
- Pode causar locks
query_cache_type = 0 query_cache_size = 0
Logs e monitoramento
slow_query_log = 1 slow_query_log_file = /var/log/mysql/slow.log long_query_time = 2 log_error = /var/log/mysql/error.log
O slow log é essencial para otimização sem aumentar uso de RAM.
Configuração completa do my.cnf (MariaDB 11.x – VPS 2 GB)
[mysqld] user = mysql bind-address = 127.0.0.1 skip-name-resolve max_connections = 50 max_user_connections = 30 wait_timeout = 60 interactive_timeout = 60 table_open_cache = 256 table_definition_cache = 256 thread_cache_size = 32 sort_buffer_size = 1M join_buffer_size = 1M read_buffer_size = 512K read_rnd_buffer_size = 512K tmp_table_size = 32M max_heap_table_size = 32M innodb_buffer_pool_size = 256M innodb_buffer_pool_instances = 1 innodb_log_file_size = 64M innodb_log_buffer_size = 16M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DIRECT query_cache_type = 0 query_cache_size = 0 slow_query_log = 1 long_query_time = 2
Comandos para validar o MariaDB 11.x
mysqladmin status
mysql -e "SHOW GLOBAL STATUS LIKE 'Threads_connected';"
mysql -e "SHOW ENGINE INNODB STATUS\G"
Esses comandos ajudam a detectar excesso de conexões, locks e gargalos.
Erros comuns no MariaDB 11.x em VPS pequenos
❌ max_connections exagerado
❌ InnoDB usando mais de 50% da RAM
❌ Buffers altos por conexão
❌ WordPress sem cache de página
MariaDB 11.x + WordPress: melhor prática
O MariaDB não deve ser o único cache. Combine com:
- FastCGI Cache (Nginx)
- LiteSpeed Cache
- WP Rocket / WP Fastest Cache
Isso reduz drasticamente queries e uso de memória.
Conclusão
O MariaDB 11.x é rápido e estável, mas apenas quando corretamente configurado.
Em servidores com pouca RAM, limites bem definidos no my.cnf fazem toda a diferença.
Com essa configuração você garante:
- Menos swap
- Menor consumo de memória
- Mais estabilidade
- Melhor performance no WordPress
