:: DEVELOPER ZONE
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.
© 1995-2005 MySQL AB. All rights reserved.
