MySQL – Melhorando o desempenho com tabelas MEMORY

Quem já teve que trabalhar com grandes volumes de dados no MySQL, já se perguntou como melhorar o desempenho de consultas longas e repetitivas. E sabe como é difícil.Este post nasceu de várias perguntas que me fiz enquanto procurava o gargalo em um sistema de verificação de inconsistências que gastava 5 horas analisando as mesmas tabelas.O Pensador

Imaginar como melhorar o desempenho de um JOIN de campos CHAR entre três tabelas, uma com 200k linhas, outra com 5k linhas e outra com 50 linhas não é fácil. A primeira saída é otimizar o banco, com a criação de índices e adequação dos campos ao conteúdo (INT, CHAR, VARCHAR, …). Mas mesmo assim não estava funcionando no meu caso. Nada que uma visita na documentação do MySQL não resolva os problemas.

Na documentação descobri que exatamente para estes casos o MySQL possui um tipo especial de tabela, o MEMORY. Ela possui algumas limitações, porém é incomparável quando o assunto é velocidade.

Continue reading →

PHP – Classe para calcular Erlang B

Engenharia - Régua de cálculo

No dia a dia do meu trabalho, me deparo sempre com a necessidade de calcular a capacidade (Erlg) de tráfego de uma interface. Assim, acabo sempre recaindo na necessidade de saber quantos Erlangs determinada interface possui, ou mesmo saber quanto terá depois de alguma atividade.

Tradicionalmente recorremos à alguma tabela de referência (exatamente como faziam na década de 60) ou utilizamos um dos inúmeros softwares que fazem este trabalho para você (para acesso web, indico o site www.erlang.com). Mas eu queria mais. Queria controlar esta atividade, e ao mesmo tempo:

  • Fazer o cálculo dentro do meu próprio código;
  • Popular uma tabela de um banco de dados,
  • Mostrar o código no meu blog 😉

Então, como um bom engenheiro que sou ;-), criei um código em PHP para calcular Erlang B…
Continue reading →

Mania Drive

Uma deficiência do Linux (e dos BSDs também) que sempre é observada pelos que estão migrando do mundo MS-Windows é a falta de grandes títulos de jogos (percebam que não falei de bons jogos).

Aos poucos o cenário está mudando, mas ainda estamos muito longe do que temos no Windows. Podemos citar alguns nomes de destaque que não deram as caras no mundo do pinguim:

  • The Sims;
  • SimCty ;
  • Fifa Soccer (e damais títulos esportivos da EA);
  • Need4Speed (qualquer um);
  • Half-Life (e suas variantes);
  • Halo (e todos os demais jogos lançados para o X-Box);
  • GTA’s;

Diversão Garantida

Continue reading →

PHP – Como Dividir um Quadrado em 4 Partes Iguais??!!

Como dividir um quadrado em 4 partes idênticas?

Esta é a proposta de programa escrito em php. A idéia é particularmente simples e fácil de ser implementada, porem é um bom exercício para que quer aprender a trabalhar com a lib_gd junto com o PHP. Vale a pena também para quem gosta de trigonometria e de cálculos.

Como os scripts fazem muitas referências ao meu antigo site, estou disponibilizando apenas o arquivo que faz os desenhos.

Para copiar os arquivos, clique aqui! (os códigos estão disponí­veis na licença GNU GPLv2).

Para testar o programa, clique AQUI! (Edit Abril 2016: O código foi desenvolvido com PHP4. Atualmente o servidor roda PHP 7 e o código ficou incompatível. Assim mesmo os fontes continuam disponíveis).

snapshot5