MariaDB: thread pool gratuito para milhares de conexões
Em vez de uma thread por conexão, o MariaDB pode usar um grupo pequeno de threads para atender milhares de clientes. E isso vem na versão gratuita.

Um restaurante não contrata um cozinheiro por mesa. Poucos cozinheiros atendem dezenas de comandas, porque a maior parte do tempo cada mesa está só conversando.
Este artigo faz parte da série MariaDB além do MySQL: dez recursos que existem no MariaDB e não existem no MySQL Community. Exemplos escritos para MariaDB 11.4 LTS (e 11.7+ quando indicado), comparados com MySQL 8.4 LTS.
O problema: uma thread por conexão
Por padrão, MySQL e MariaDB criam uma thread do sistema operacional para cada conexão. Com 5.000 conexões, são 5.000 threads disputando CPU, memória e trocas de contexto. Quando todas resolvem trabalhar juntas (pico de Black Friday), a latência dispara e o servidor parece travar.
one-thread-per-connection pool-of-threads
conexões: 5000 conexões: 5000
threads: 5000 ← caos grupos: 16 (≈ nº de CPUs)
threads ativas: poucas por grupo
fila organiza o resto
Na prática
[mariadb]
thread_handling = pool-of-threads
thread_pool_size = 16 # normalmente = nº de núcleos
thread_pool_max_threads = 2000
thread_pool_stall_limit = 500 # ms até considerar um grupo travado
max_connections = 5000
extra_port = 3307 # porta de emergência fora do pool
extra_max_connections = 10
SHOW GLOBAL VARIABLES LIKE 'thread_handling';
SHOW GLOBAL STATUS LIKE 'Threadpool%';
-- MariaDB 10.6+: visão por grupo
SELECT * FROM information_schema.THREAD_POOL_GROUPS;
A extra_port é sua saída de emergência: se o pool estiver saturado, o DBA ainda consegue entrar e investigar.
Quando usar
- Aplicações com muitas conexões curtas (PHP, serverless, microsserviços sem pool).
- Picos de concorrência em que o desempenho despenca.
Quando não ajuda
- Poucas conexões fazendo consultas longas: o pool pode até atrapalhar.
- Consultas lentas por falta de índice. Thread pool não conserta SQL ruim.
E no MySQL?
No MySQL, o thread pool é um plugin da edição Enterprise, paga. O MySQL Community só tem uma thread por conexão (o Percona Server oferece um pool próprio). No MariaDB, ele faz parte da versão gratuita.
A série completa: MariaDB além do MySQL
- Tabelas temporais (System Versioning) para viajar no tempo dos dados
- Períodos de aplicação e WITHOUT OVERLAPS para reservas sem conflito
- SEQUENCE, o gerador de números que o AUTO_INCREMENT não consegue ser
- INSERT e DELETE ... RETURNING, uma ida ao banco em vez de duas
- Modo Oracle (SQL_MODE=ORACLE) para migrar PL/SQL com menos dor
- Multi-master síncrono que já vem na caixa
- Banco colunar para análise sem sair do SQL
- Sharding transparente com tabelas distribuídas
- Thread pool gratuito para milhares de conexões
- Busca vetorial com índice HNSW para IA e RAG
Ainda decidindo entre os dois? Leia MySQL ou MariaDB: qual é o melhor? e o guia definitivo de MySQL.
Quer dominar a base que os dois compartilham?
MariaDB nasceu do MySQL, e tudo o que é fundamento (modelagem, índices, transações, replicação, otimização) vale para os dois. É isso que eu ensino no livro Aprendendo MySQL: Prática, Teoria, Laboratórios, Desafios e Projetos: 292 páginas, 10 laboratórios guiados, 277 exercícios e 4 desafios com gabarito, e uma máquina virtual pronta para você quebrar (e consertar) à vontade.
Conheça o livro e leia a degustação gratuita.
Bora trocar ideia?
Se este artigo te ajudou (ou te fez discordar, que também vale), me siga no LinkedIn e no Instagram. Lá eu posto bastidores de banco de dados, história da computação e histórias de produção que ninguém conta em curso oficial.
Sobre o autor: Alexandre Almeida atua com bancos de dados há mais de 25 anos, foi instrutor oficial de MySQL e Oracle para mais de 1.000 alunos e escreveu Aprendendo MySQL: Prática, Teoria e Laboratórios.
Fontes: MariaDB Server Documentation (MariaDB Knowledge Base), notas de release do MariaDB Server, MySQL 8.4 Reference Manual. Imagem de capa: ilustração gerada por IA (cozinha de restaurante movimentada com poucos chefs atendendo muitas comandas).