Escalando o Mysql para escritas concorrentes

Seguem algumas dicas do Dathan Pattishall da Flickr… enjoy it :)  

–>spread data around: federate users por shards: eles fazem um hash pelo user id para o cluster id

–>innodb não funciona com pks grandes (baseadas em strings): eles tinham uma pk que era uma url (string) e a converteram para um 64-bit number(ID) usando a função conv(substr(md5(url),0,16),16,10)

–>innodb & strings: indexar uma string em innodb ocupa muito espaço, além disso a fragmentação nas páginas prejudica a performance. A solução foi “bufferizar” as escritas - eles usam um deamon java que faz o buffer de até 4000 mensagens (transações) e as aplica serialmente usando uma única thread

–>reduza o uso de grandes strings: coloque dados históricos ou não produção em MyIsam .  A vantagem é que o Myisam mantem os dados usando 1/6 do tamanho do innodb.

Dê uma olhada no Blog do Dathan Pattishall : http://mysqldba.blogspot.com/

Leave a Reply