Otimização de Banco de dados
3
1. Visão Geral da Otimização
1.1. Limitações do Projeto MySQL/Trocas1.2. Portabilidade1.3. Para que Utilizamos o MySQL?1.4. O Pacote de Benchmark do MySQL1.5. Utilizando seus Próprios Benchmarks
A parte mais importante para obter um sistema rápido é com certeza o projetobásico. Você também precisa saber quais tipos de coisas seus sistema estará fazendo, equais são gargalos existentes.Os gargalos mais comuns são:
•
Pesquisa em disco É necessário tempo para o disco encontrar uma quantidade dedados. Com discos modernos em 1999, o tempo médio para isto eranormalmente menor que 10ms, portanto em teoria poderíamos fazer 100 buscaspor segundo. Este tempo melhora moderadamente com discos novos e isso émuito difícil otimizar para uma única tabela. A maneira de otimizar isto écolocando os dados em mais de um disco.
•
Leitura de disco/Escrita (I/O) Quando o disco estiver na posição corretaprecisaremos que os dados sejam lidos. Com discos mais modernos em 1999,um disco retorna algo em torno de 10-20Mb/s. Isto é mais fácil de otimizar queas buscas porque você pode ler vários discos em paralelo.
•
Ciclos de CPU. Quando tivermos os dados na memória principal (ou se eles jáestiverem lá) precisaremos processá-los para conseguir nosso resultado. O fatorde limitação mais comum é ter ppequenas tabelas, comparadas com a memória.Mas, com pequenas tabelas, normalmente não teremos problemas comvelocidade.
•
Largura de banda da memória. Quando a CPU precisa de mais dados que podemcaber no cache da CPU a largura da banda da memória principal se torna umgargalo. Isto é um gargalo muito incomum para a maioria dos sistema, mas ébom estarmos ciente dele.
1.1. Limitações do Projeto MySQL/Trocas
Quando usamos o mecanismos de armazenamento MyISAM, o MySQL utilizatravamento de tabela extremamente rápidos (múltiplas leituras / única escrita). O maiorproblema com este tipo de tabela ocorre quando você tem uma mistura do fluxo fixo deatualizações e seleções lentas na mesma tabela. Se isto for um problema com algumastabelas, você pode usa outro tipo de tabela.O MySQL pode trabalhar com tabelas transacionais e não transacionais. Paratrabalhar sem problemas com tabelas não transacionais (nas quais não se pode fazer umrollback se alguma coisa der errada), o MySQL tem as seguintes regras: