← Voltar ao hub MariaDB
MariaDB 22 de outubro de 2026 5 min de leitura

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.

MariaDB: thread pool gratuito para milhares de conexões

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

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).