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
.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.