MySQL + Windows 7 + Quad Core = debulha da interface do usuário

0

Estou executando o Windows 7 (profissional) com uma intel Q8400 e MySQL 5.1. Sempre que tenho consultas pesadas do MySQL (por exemplo, inserir ou atualizar 10.000 a 40.000 registros, o que leva vários segundos), minha interface do usuário falha e congela. Os aplicativos geralmente são responsivos (não congelados), mas não fazem muito até que a consulta SQL seja concluída.

No uso da CPU, o MySQL consome um processador inteiro (25% no Gerenciador de Tarefas) em quatro; os outros três não são usados.

O que posso fazer para melhorar o desempenho? Essas consultas são executadas por alguns minutos, por isso é um grande incômodo.

Edit: Eu tenho um único HD SATA (Samsung HD502HJ)

    
por ashes999 10.12.2010 / 16:11

2 respostas

0

O mais provável é que isso seja devido a um gargalo na E / S. Estou supondo que você esteja usando um único disco rígido ou um espelho simples. Se esse for o caso, você não tem um subsistema de disco no local que forneça taxa de transferência suficiente para suportar consultas tão grandes sem interrupção para outras tarefas em execução no sistema.

Basicamente, a menos que você queira investir em mais alguns discos rígidos e um bom controlador RAID, você terá que conviver com isso. Leituras / gravações grandes geralmente são sempre vinculadas ao disco, não vinculadas à CPU em máquinas modernas.

Editar: À luz dos comentários anteriores sobre o seu OP, não há muito o que fazer com um único disco rígido. A maioria dos servidores que lidam com grandes consultas SQL possui 6-8 discos rígidos. As melhores práticas determinam que você tenha pelo menos três conjuntos fisicamente separados de discos rígidos. Um é para o SO, Troca e aplicação, um segundo é para os bancos de dados e o terceiro é para os logs de transação. Isso evita que várias gravações de confirmações individuais ocorram no mesmo volume.

Basicamente, se você quer rodar o MySQL em um desktop ao invés de um servidor e fazer grandes consultas, não há nenhuma quantidade de ajuste que você possa fazer para aliviar esse gargalo.

    
por 10.12.2010 / 16:17
0

Para aproveitar os vários processadores, você deve conseguir criar um aplicativo que divida as instruções SQL e distribua o trabalho entre vários segmentos. Isso permitirá que as consultas sejam essencialmente inseridas a 4 vezes a velocidade.

    
por 10.12.2010 / 16:28