O MySQL Server é certamente multi-threaded. Cada consulta, no entanto, é executada em um único thread. Na maioria dos casos, problemas com "lentidão" não se devem à falta de poder de processamento ... mas sim à falta de RAM e / ou índices adequados. À medida que as consultas são executadas, o sistema armazenará em cache os dados na RAM ... e, à medida que a sua memória RAM acaba, o sistema operacional começa a usar o espaço de troca para compensar. Trocar ... é LENTO.
As soluções podem incluir:
- Jogue mais RAM na caixa.
- Definir limites em my.cnf. Isso também pode ter efeitos colaterais onde os limites são muito baixos para concluir as tarefas.
- Otimizar índices. Às vezes, a adição de índices pode poupar muito memória para o sistema, para que ele não precise pesquisar os mesmos valores para cada consulta ... às vezes, pode ter o efeito oposto, no qual você indexa campos que realmente não precisam ser, e apenas consome RAM.
Há um grande número de variáveis para analisar. Há graus inteiros com base no gerenciamento de banco de dados adequado. Esta não é uma simples pergunta / resposta "flip-this-switch". Você provavelmente deve contratar um consultor ou alguém que lide com esses tipos de problemas regularmente.
**** edit **** As soluções que mencionei não estão em ordem particular. Não há uma única mágica que resolva seus problemas. Resolver seus problemas pode envolver todos os 3 que mencionei, além de opções adicionais. Minha lista está incompleta e pode ser facilmente adicionada. Memcaching, clustering e muitas outras opções devem ser consideradas também.