Como o NVMe acelera bancos de dados MySQL e PostgreSQL
Bancos de dados são, em geral, o componente mais sensível a disco de qualquer aplicação. Por isso, poucos upgrades trazem tanto resultado quanto migrar para armazenamento NVMe.
Por que banco de dados depende tanto do disco
Um banco relacional como MySQL, MariaDB ou PostgreSQL:
- Lê páginas de dados e índices que não estão na memória;
- Grava logs de transação (redo log no InnoDB, WAL no PostgreSQL) a cada commit, com sincronização em disco (
fsync); - Descarrega páginas modificadas para o disco periodicamente;
- Cria arquivos temporários em ordenações e junções grandes.
Grande parte dessas operações é aleatória e pequena — o tipo de acesso em que o NVMe tem latência muito menor e IOPS muito maiores.
Onde o ganho aparece
- Commits mais rápidos: a gravação do log de transações com
fsyncfica mais ágil, o que aumenta o número de transações por segundo; - Consultas "frias": quando os dados não estão em cache, a leitura do disco é muito mais rápida;
- Picos de carga: o NVMe processa muitas operações em paralelo, reduzindo filas;
- Manutenção: backups,
VACUUM,OPTIMIZE, criação de índices e restaurações terminam mais rápido.
Ajustes que ajudam a aproveitar o NVMe
MySQL / MariaDB (InnoDB)
[mysqld]
innodb_buffer_pool_size = 1G # ~50-70% da RAM em servidor dedicado ao banco
innodb_io_capacity = 2000
innodb_io_capacity_max = 4000
innodb_flush_method = O_DIRECT
innodb_flush_neighbors = 0 # desnecessário em SSD/NVMe
PostgreSQL
shared_buffers = 1GB # ~25% da RAM
effective_cache_size = 3GB # ~50-75% da RAM
random_page_cost = 1.1 # padrão 4.0 é pensado para HDD
effective_io_concurrency = 200
O random_page_cost é especialmente importante: com o valor padrão, o PostgreSQL "acha" que leitura aleatória é cara e pode evitar índices que seriam vantajosos em NVMe.
Ajuste os valores à RAM do seu VPS e teste antes de aplicar em produção.
Disco rápido não substitui memória nem índices
- Garanta RAM suficiente para o conjunto de dados mais acessado;
- Crie índices adequados e analise consultas lentas (
slow_query_log,pg_stat_statements); - Use cache de aplicação (Redis) para dados muito acessados.
O NVMe entra como a base que faz tudo isso render mais.
Conclusão
Se o seu banco de dados é o coração da aplicação, ele merece um disco à altura. Os planos VPS-NVME-BR da VittHost oferecem armazenamento NVMe em servidores no Brasil.Use o cupom SP-VITT20 e ganhe 20% de desconto na primeira fatura enquanto a promoção estiver ativa.