MySQL: Otimização de Consultas

Esse artigo mostra, através de conceitos e exemplos, como é possível Otimizar Consultas em um banco de dados utilizando metodologias simples de consultas.

Por Programação Pular para comentários
MySQL: Otimização de Consultas

Atualmente as aplicações exigem cada vez mais processamento de dados de maneira eficiente e rápida. E para alcançar esse objetivo, um ponto fundamental é a maneira de realizar consultas, atualizações, inserções e exclusões em um banco de dados. Devemos adotar a melhor estratégia para minimizar o tempo em que serão realizadas essas SQLS. Pretendo mostrar nesse artigo, através de exemplos práticos, algumas boas estratégias a serem adotadas.

Realizei alguns testes, utilizando o phpMyadmin¹, em um computador que possui a seguinte configuração:
Processador AMD Atlon X2, 2GB memória RAM DDR2, 120GB HD e memória cache 2MB, com o sistema operacional XP.

De início registrei no meu Banco de Dados 30 mil dados, sendo que a tabela 'tbteste' continha as colunas nome e idade. Esse banco de dados com 30 mil registros não se compara com a quantidade de dados que são armazenados em um bd de grandes empresas, que possuem bancos com 1GB ou ate mesmo 1PETABYTE de dados armazenados. Por mais que esse banco de dados possua poucos registros, será perceptível, através dos testes, a diferença de tempo entre uma SQL e outra.

Então vamos lá:

Pesquisa por índice x Pesquisa por registro


Em uma consulta, sempre que possível, dê preferência em realizar a pesquisa por índice no lugar de pesquisar por outro registro.
Por ex:
SELECT * FROM 'tbteste' WHERE id = 18301

Consulta levou 0.0007 segundos
SELECT * FROM 'tbteste' WHERE nome = 'Samyr'

Consulta levou 0.0103 segundos

Obs: Nesse exemplo o id 18301 possui o dado 'Samyr'.

Ao fazer a consulta em minha tabela 'tbteste' pelo 'id', o tempo de pesquisa foi de 0.0007 segundos, e a mesma consulta pela coluna 'nome' o tempo de resposta foi de 0.0103 segundos.

Evite conversões


Ao realizar uma SQL, evite utilizar aspas ('') em registros que são variáveis inteiras. Ao utilizar essas aspas, o SGBD(Sistema gerenciador de banco de dados), perderá tempo convertendo esses caracteres de char(ao colocar aspas a variável do tipo inteiro passa a ser do tipo char) para inteiro.
Ex:
SELECT * FROM 'tbteste' WHERE idade = 20

Consulta levou 0.0088 segundos
SELECT * FROM 'tbteste' WHERE idade = '20'

Consulta levou 0.0105 segundos
Devido a conversão, de char para int, o segundo select demorou mais tempo que o primeiro.

Tamanho dos registros


Evite colocar em variáveis, um tamanho maior do que o necessário. Se o campo é do tipo varchar e o tamanho suficiente é 30, não tem o porquê de colocar o tamanho 200.
Ex:
SELECT nome FROM tbteste WHERE nome = 'samyr'

varchar(200) - campo nome com tamanho 200.
Consulta levou 0.0202 segundos
varchar(30) - campo nome com tamanho 30.
Consulta levou 0.0175 segundos


Com o campo nome de tamanho 200 a consulta demorou mais tempo do que com tamanho 30.

Essas práticas são muito simples de serem realizadas, e fazem grande diferença em aplicações que possuem grande quantidade de dados armazenados em seus bds.
Espero que tenham gostado desse artigo. E até a próxima....

¹ phpMyAdmin é um programa de computador desenvolvido em PHP para administração do MySQL pela Internet. A partir deste sistema é possível criar e remover bases de dados, criar, remover e alterar tabelas, inserir, remover e editar campos, executar códigos SQL e manipular campos chaves.
Fonte: http://pt.wikipedia.org/wiki/PhpMyAdmin

Compartilhe com seus amigos:
Samyr Abdo Nunes Raim
Samyr Abdo Nunes Raim Tenho 22 anos, sou programador PHP formado em Sistemas de Informação na UNIMONTES(Universidade Estadual de Montes Claros). Trabalhando atualmente em BH tenho grande experiência em desenvolvimento web. Sigam me no Twitter: http://twitter.com/samyrabdo
FACEBOOK // TWITTER: @samyrabdo
Quer conversar com o(a) Samyr, comente:
Carregar comentários
Últimas notícias de Programação
  • Google usa Mulher-Maravilha para ajudar meninas a programar

    Google usa Mulher-Maravilha para ajudar meninas a programar

    Meninas ganham um incentivo extra na hora de aprender a programar, a Mulher-Maravilha.

  • Criando um cadastro de usuário em Java

    Criando um cadastro de usuário em Java

    O objetivo deste artigo é desenvolver uma aplicação em JSE (Java Standard Edition) de inserção de dados utilizando alguns padrões de projeto.

  • Quer aprender PHP? Saiba mais

    Quer aprender PHP? Saiba mais

    Chegou o tão aguardado curso online de PHP do Oficina da Net. Você não pode perder. PHP é uma das linguagens mais usadas no mundo. Os conteúdos que vou mostrar no curso, são exatamente o que você precisa saber para iniciar sua carreira como programador.

  • Formulário de contato em php

    Formulário de contato em php

    Guia do PHP: Aprenda a fazer um formulário em PHP que envia via SMTP autenticado o e-mail para um destinatário.

  • Como fazer um GIF?

    Como fazer um GIF?

    Aprenda a criar um GIF animado de vídeos. Descubra como criar os GIFs, imagens animadas que você vê em na internet.

  • O que priorizar na hora de escolher o hosting para seu site?

    O que priorizar na hora de escolher o hosting para seu site?

    Com o crescimento das ofertas na web, saiba o que você deve levar em consideração na hora de escolher a melhor empresa de hosting para seu empreendimento

  • O que preciso fazer para criar um aplicativo?

    O que preciso fazer para criar um aplicativo?

    Temos visto que desenvolver aplicativos que visam o mercado mobile pode ser mais que uma alternativa rentável, pode colocá-lo no topo, deixá-lo rico. Mas nem tudo são flores, e o aspirante a desenvolvedor de app precisa seguir algumas regras.

  • WEBINAR 3.9

    WEBINAR 3.9

    Venha para o Maker e descubra como tornar o seu negócio mais competitivo.