1
resposta

Uma ou várias queries

Qual é mais recomendado que se use se tratando de desempenho do banco de dados: uma query única para retornar várias linhas ou várias querys cada uma para uma linha?? Exemplificando (com PHP e MYSQL):

foreach ($array_usuarios as $usuario_id){
    $recv = mysqli_query($conn, "select * from tabela_usuarios where id={$usuario_id}");
}

OU

$recv = mysqli_query($conn, "select * from tabela_usuarios");

Considerando, por exemplo, que em ambos os casos serão retornados os mesmos números de linhas.

1 resposta

Olá Victor!

Os dois métodos não fará diferença diferença, mas com um grande volume de linhas a diferença será devido a quantidade de ações.

Com o código do foreach(), o PHP pedirá para abrir uma conexão, buscará o resultado e fechará a conexão. E isso ocorrerá para cada usuário. A longo prazo, serão muitas requisições para o banco. Detalhe: se a variável $recv for criada dentro do foreach(), provavelmente ficará apenas com o último resultado da query.

Do outro jeito, abrirá a conexão, buscará o resultado e fechará a conexão, tendo assim um array com os dados de uma só vez, para serem tratados.

Espero ter ajudado!