Arquivo da tag: performance

O MyISAM está morto?

Desde a versão 5.5 do MySQL o storage engine InnoDB vem configurado “de fábrica” como padrão.

O InnoDB é um storage engine transacional, 100% ACID, estável e robusto, e, inteiramente, grátis. Reconhecidamente, fez progressos notáveis desde o MySQL 4.x. Com destaques para as melhorias implementadas nas versões: 5.1, 5.5, 5.6, e, recentemente na 5.7.

O fato de o InnoDB vir de fábrica como padrão, nada nos impede de criarmos tabelas (ou alterarmos) utilizando a opção ENGINE, para que estas reflitam o storage engine que mais nos atende.

Continue lendo O MyISAM está morto?

Microsoft SQL Server: Detectando Índices Fragmentados – Melhorando a Performance

Assim como o disco, fisicamente, torna-se fragmentado; também acontece com toda organização lógica que venha fazer uso desta mídia. Tablespaces, tabelas, e, índices. Todos se fragmentam. Faz parte do negócio. É regra do jogo, se quiser brincar, aceite-as. A fragmentação (não importa o objeto de banco de dados em questão) acontecerá mais, ou menos, dependendo do tipo de operação do banco de dados.

Bancos de dados transacionais (OLTP) tendem a se fragmentar muito muito mais do bancos de dados de consulta massiva (OLAP/DW). Pelo menos, se sustentados da maneira correta.

Quanto mais escrita, maiores as probabilidades de fragmentação. A modelagem podem afetar, também, a fragmentação.

Claro que, tudo que está fragmentado está bagunçado. E, tudo que está bagunçado não vai bem. No caso de banco de dados, isto significa uma redução de performance.

O efeito colateral mais esperado da desfragmentação é o aumento de performance, ou, se preferir: recuperação da performance perdida. Neste artigo, trataremos, puramente, da fragmentação de índices.

Mas, para os loucos por um código pronto, vamos ao que interessa: Fragmentação de Índices no Microsoft SQL Server. Lidar com fragmentação, envolve duas etapas básicas: identificação e ação.

Continue lendo Microsoft SQL Server: Detectando Índices Fragmentados – Melhorando a Performance

O MySQL e o uso de Cache (NoSQL)

Fiz uma pesquisa, recentemente, para entender como as pessoas estão usando cache com banco de dados, logicamente, com MySQL. O resultado, confesso que foi muito diferente do que eu imaginava.

 31% dos usuários de MySQL usam MemCache. 19% ficam o Query Cache, o cache nativo do MySQL. Isto significa que 50% usam algum tipo de cache, o que faz muito sentido para mim.

 Uma surpresa espantosa foi aqueles que disseram que “não sabem para que serve cache” e os que “não sabem dizer se usam ou não”. Estamos falando de 19% da amostragem! Tudo bem, ninguém nasce sabendo. Cheguei a conclusão que seria muito bancana intensificar a criação de artigos sobre o assunto.

Cache é para todos? Não, não é. Obviamente, todo tipo de aplicação pode tirar proveito de um cache. No entanto, às vezes o benefício trazido pelo cache é tão pequeno que não compensa usá-lo, vez que algumas novas linhas de código seriam necessárias em sua aplicação. Certamente, alguns irão discordar deste parágrafo. Mas, depois de tantos anos de consultoria, o titio chegou a conclusão que esta é uma verdade inexorável.

Continue lendo O MySQL e o uso de Cache (NoSQL)