Eu tenho muitos processos somente de gravação do MySQL. Todos eles vão para o mesmo mestre MySQL. Eu os executo sequencialmente para obter um tempo de linha de base. Eu basicamente encadeei vários clientes de linha de comando mysql, um após o outro. Mais tarde, eu acionei paralelamente vários clientes mysql ao mesmo tempo para obter um tempo experimental. Por que os tempos são os mesmos?
Mais fatos:
- Cada cliente atinge um esquema separado. Isso elimina a possibilidade de disputa de bloqueio de tabela ou linha entre clientes.
- Eu tentei isso no Win32 XP com alguns núcleos e 4 GB de RAM versus RedHat 5.6 de 64 bits com 24 núcleos virtuais e 32 GB de RAM. A linha de base vs. experimental é a mesma em ambos.
- No RedHat, tentei todos os clientes TCP versus todos os clientes SOCKET. Nenhuma diferença provavelmente porque o servidor não está sobrecarregado.
Sim, acho que você está vinculado ao IO e não paralelizou os discos rígidos envolvidos nas gravações. Há muitas coisas que entram no desempenho da inserção. Você pode aprender mais aqui .
Não há informações suficientes.
Qual Motor?
O cache de consulta está envolvido?
Quais são os valores de key_buffer_size e innod_buffer_pool_size?
É limitado por E/S? Ou vinculado à CPU?
De quanto "tempo" você está falando?
Precisamos efetivamente ver as consultas, depois o esquema, os tamanhos das tabelas, etc., para explicar o que você está vendo.