Sintonia dos Parâmetros em Tempo de Sistema/Compilação e na Inicialização


Nós iniciamos com o fator do nível do sistema pois algumas destas decisões devem ser feitas bem cedo. Em outros casos uma rápida olhada para esta seção pode satisfazer porque ela não é tão importante para os grandes ganhos. Entretanto, é sempre bom ter ter noções de como você pode obter melhorias alterando coisas neste nível.

Qual sistema operacional a usar é realmente importante! Para obter o melhor uso de máquinas com múltiplas CPUs você deve utilizar Solaris (porque a sua implemetação das threads funcionam muito bem) ou Linux (porque o kernel 2.2 tem suporte SMP muito bom). Também, em Linux mais antigos temos o limite de tamanho de arquivo de 2G por padrão. Se você tem tal kernel e precisa desesperadamente de trabalhar com arquivos maiores que 2G em máquinas intel Linux, você deve obter o patch LFS para o sistema de arquivos ext2. Outros sistemas de arquivo como ReiserFS e XFS não possuem esta limitação de 2G.

Como ainda não temos o MySQL em produção em muitas outras plataformas, nós aconselhamos que você teste a plataforma pretendida antes de escolhe-la, se possível.

Outras dicas:

Se você possui RAM suficiente, você pode remover todos os dispositivos de troca. Alguns sistemas operacionais irão utilizar um disposotico de troca em alguns contextos, mesmo se você possuir memória livre.

Utilize a opção do MySQL --skip-external-locking para evitar locks externos. Perceba que isto não irá afetar a funcionalidade do MySQL se você estiver executando um único servidor. Apenas lembre-se de desligar o servidor (ou travar as partes relevantes) antes de executar myisamchk. Em alguns sistemas esta opção é obrigatório porque o lock externo não funcionam em nenhum caso.

A opção --skip-external-locking está ligada por padrão a partir do MySQL 4.0. Antes disto, era ligada por padrão quando compilando com MIT-pthreads, porque flock() não é totalmente suportado pelas MIT-pthreads em todas plataformas. É também o padrão para Linux pois o bloqueio de arquivos no Linux não é muito seguro.

O único caso que você não pode utilizar --skip-external-locking é se você precisa de vários servidores MySQL (não clientes) acessando os mesmos dados, ou executar myisamchk na tabela sem dizer ao servidor para descarregar e travar as tabelas primeiro

Você pode continuar usando LOCK TABLES/UNLOCK TABLES mesmo se você estiver utilizando --skip-external-locking.

Extraido do Manual de Referência do MySQL 4.1