Otimizando uma tabela MySQL para uso intenso

3

Eu tenho uma mesa. Devido à natureza do site, nessa tabela, se eu tiver mais de 400 usuários, ele inserirá 100.000 novas linhas por hora.

Se eu tiver perto de 4000, em seguida, por 2 horas ou mais, eu terei um mínimo de 500.000 linhas inseridas. Isso significa cerca de 800-1000 inserções por segundo, provavelmente até mais do que isso.

Como faço para preparar a mesa para tal uso intenso? Eu estou falando sobre o lote de inserções por segundo na tabela e eu não quero que ele fique bloqueado ou diminua a velocidade.

O mecanismo de tabela é MyISAM, mas pode ser alterado para acomodar quaisquer alterações

    
por dikidera 22.05.2011 / 14:11

1 resposta

3

tudo depende do seu padrão de uso - você precisa de alto desempenho para pesquisas nesta tabela? As pesquisas serão distribuídas uniformemente em toda a tabela ou apenas nos dados mais recentes? Se os selects atingirem as linhas inseridas recentemente, considere o particionamento. Verifique este e isso .

myisam carga de escrita quase + pesada soa como uma má ideia para mim. vai innodb. aprenda sobre o ajuste desse mecanismo, use discos rápidos, tenha configuração de memória / buffer pool suficiente para caber pelo menos índices em ram.

verifique postagens no mysqlperformanceblog - você encontrará muitos bons conselhos por lá.

gasta muito tempo em benchmarking - veja como o sistema se comporta sob carga prolongada [você pode ver quedas no desempenho devido a checkpointing - é aceitável? ou talvez você precise obter 5.5 ou xtradb resolver esse problema?]

    
por 22.05.2011 / 14:22

Tags