Article image
Marcia Melo
Marcia Melo02/09/2022 19:58
Compartilhe

Porque não usar SELECT *?

  • #SQL

Usar o SELECT* não é legal, porque na grande maioria das vezes você não precisa de todas as colunas e linhas daquela tabela, fazendo isso você irá sobrecarregar seu banco de dados e diminuir o desempenho. Se por acaso sua tabela tiver poucas linhas, não haverá maiores problemas, mas imagina uma tabela com 20 mil registros, 15 colunas e você faz SELECT * FROM tabela para carregar suas informações. Você estará manipulando uma quantidade de informação que não precisa, quando na verdade você só precisa ver o resultado de apenas uma coluna.

Isso pode trazer uma série de problemas. Temos que entender que as pessoas não vão visualizar 20 mil registros ao mesmo tempo, e que ao fazer esse tipo de query o navegador do usuário pode travar, pode haver sobrecarga do servidor deixando a execução lenta. Fora o custo do servidor.

 

Vamos tentar entender melhor com o exemplo abaixo.

 

Suponha que você tem uma tabela com 10 colunas e 100 linhas. Você precisa fazer um select nessa tabela. Exemplo:

 

SELECT * FROM Tabela10por100;

Se cada campo na tabela tem 32 bytes de tamanho, o seu retorno será do tamanho: 32 * 10 * 100 = 32.000 bytes.

 

Se o que você precisa é de apenas um campo, então o melhor seria:

 

SELECT campo1 FROM Tabela10por100;

O resultado para essa busca é: 32 * 1 * 100 = 3.200 bytes. Apenas 10% do que retornou na consulta não otimizada.

 

Para resolver isso é só incluir no lugar do * os nomes dos campos que você deseja visualizar. Você também pode usar a cláusula WHERE deixando sua consulta ainda mais refinada através dos filtros. Desta forma suas consultas retornarão muito mais rápidas além de uma melhor visualização dos campos.

 

Para evitar todo esses contratempos na hora de realizar suas consultas evite o uso de asterisco ( * ) em instruções SELECT .

 

Espero que tenha clareado um pouco as ideias rsrsrs...

Compartilhe
Comentários (2)
Mayko Costa
Mayko Costa - 04/09/2022 17:38

Outra questão que é bom salientar é a questão da segurança. Imagina fazer Select * em um entidade como usuário. Dados sensíveis como senhas poderiam ser expostas. Acarretando vazamentos de dados. Consulta sempre deve ser otimizada conforme requisitos.

Marcos
Marcos - 04/09/2022 02:16

Valeu !

Irei dar essa dica para o estagiário, problema se ele colocar em prática.