Black Friday 20% de desconto
Tá acabando

0

dias

00

hrs

00

min

00

seg

Artigos > Data Science

Economizando 198 megas com um único SELECT

Guilherme Silveira
Guilherme Silveira

Quero o nome, o preço e a categoria de um produto:


select * from Produtos p join Categorias c on c.id=p.categoria_id;
> 1, Livro Swift, 50.0, 3, Mobile > 2, Certificação Java, 50.0, 1, Java > 3, ...

Executo a query e por muitas semanas ela funciona lindamente em produção. Até que um dia o site começa a ficar lerdo... lerdo... lerdo... Mas local, funciona que é uma beleza.

Mas calma lá, eu disse que queria nome, preço e categoria, e eu - de maldade - abreviei a resposta lá em cima:


\> Livro Swift, 50.0, Mobile, Crie uma app do zero, utilizando boas práticas de programação, mas também entendendo os motivos e as características importantes da linguagem que revolucionou o mercado mobile iOS... > ...

O que eu fiz? Só quero nome, preço e categoria, mas estou trazendo tudo! Antes o produto não tinha campo descrição, e agora ele tem!

Imagine que tenho um banco pequeno, com 20 mil produtos. Cada produto tem um nome de 100 caracteres assim como a categoria. Isso quer dizer que eu queria transferir do HD do meu banco para a minha máquina cerca de 20000 * 200 = 4 megas.

Mas na verdade eu fiz um select *!

Selecionei todos os campos! Se cada descrição completa de um produto tem 10 mil caracteres por causa do sumário do livro, temos então 20 mil produtos, cerca de 10 mil caracteres em cada um: 200 megas!

Boa sorte tirar tudo isso do seu HD. Boa sorte levar tudo isso pela rede de uma máquina para outra. Boa sorte construir as Strings em memória que representam estes valores.

select * é perigoso por diversos motivos. O consumo de memória e banda é só um deles... pense a longo prazo: se o banco mudar você vai trazer mais coisa do que queria, e esse mais coisa talvez seja demais.


select nome, preco, categoria 
from Produtos p 
join Categorias c on c.id=p.categoria_id;

Novamente, com poucos caracteres, em determinados cenários, você muda completamente a eficiência de um banco de dados!

Gostou dessas práticas e dicas de SQL

Leia também:

Artigos de Tecnologia e Negócios > Data Science
Tá acabando

0

dias

00

hrs

00

min

00

seg

  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

  • Desconto 20%

Premium

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75 R$60
à vista R$900 R$720
Matricule-se

Premium Plus

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100 R$80
à vista R$1.200 R$960
Matricule-se

Max

Desconto 20%
  • 1244 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120 R$96
à vista R$1.440 R$1.152
Matricule-se
Conheça os Planos para Empresas

Acesso por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas