Por que usar 'SELECT * FROM tabela' é ruim?

Usar SELECT * FROM tabela é considerado ruim por algumas razões.

Primeiro, ao selecionar todas as colunas de uma tabela, você estará trazendo mais dados do que o necessário. Isso pode aumentar o consumo de recursos do servidor, como uso de memória e largura de banda de rede. Se a tabela possuir muitas colunas ou tiver um grande volume de dados, essa abordagem pode impactar significativamente o desempenho do sistema.

Além disso, usar SELECT * torna difícil entender qual exatamente é o conjunto de dados que está sendo buscado. Isso pode levar a confusões, especialmente em consultas complexas ou quando múltiplas tabelas estão sendo utilizadas. Também pode dificultar a manutenção do código, tornando-o mais suscetível a erros ao adicionar, remover ou renomear colunas na tabela.

Outra desvantagem é que usar SELECT * envia automaticamente todas as colunas da tabela para o cliente, mesmo que o aplicativo só precise de um subconjunto dessas colunas. Isso pode ser um desperdício de recursos se você só precisar de alguns campos específicos.

Recomenda-se sempre especificar as colunas que são necessárias na consulta. Dessa forma, você pode limitar os dados trazidos do banco de dados apenas ao necessário, melhorar o desempenho e deixar o código mais claro e menos propenso a erros. Por exemplo:

SELECT coluna1, coluna2, coluna3 FROM tabela;

Ao especificar as colunas explicitamente, você obtém mais controle sobre os dados retornados e reduz o impacto negativo no desempenho do sistema.