Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiapo

Qual o mais performático: Fetch ou FetchAll?

Recommended Posts

Pessoal,

 

Estou implementando em meu sistema procedures que são chamadas via PDO.

 

Elas podem retornar um ou mais registros.

 

Pergunta: O que seria mais performático para o banco de dados e aplicação: realizar o fetch registro a registro utilizando um laço for, por exemplo, ou fazer o fetchAll e fazer o tratamento dos registros internamente na aplicação?

 

Outra dúvida: Caso eu venha a utilizar o fetchAll, eu sempre tenho que referenciar o código da linha para poder capturar a coluna? Pois no fetch eu apenas pego a coluna desejada.

Exemplo: $rs->fetch();

$id = $rs[0];

$nm = $rs[1];

 

$rs2 = fetchAll();

$id = $rs2[0][0];

$nm = $rs2[0][1];

 

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Depende.

 

O PDO pode ou não trabalhar com buffered queries.

 

Quando você trabalha com buffers, o PDO puxa os registros pra memória, nesse caso tanto faz usar fetch() ou fetchAll(). A diferença é insignificante... variações de energia provavelmente influenciam mais do que isso no tempo de processamento ;)

 

Agora se a query for unbuffered, significa que o PHP não puxará todos os registros pra memória, buscará apenas por demanda. Isso pode ser útil se você não deseja utilizar todos os registros... se você estiver iterando sobre os resultados para buscar algo.

 

http://br2.php.net/pdo_mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tash,

 

Isto vale tanto para MySQL como para PostgreSQL?

 

Como faço para bufferizar uma query utilizando o driver do PostgreSQL?

 

Pois pelo que li, eu até posso utilizar esta função de buffer do MYSQL para o driver PostgreSQL, mas pode ter um resultado não esperado.

 

Muito obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa pergunta! Não sei como a buferização funciona com outros bancos...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou mover para Postrgre que o pessoal pode te ajudar.

 

Tópico Movido

PHP http://forum.imasters.com.br/public/style_emoticons/default/seta.gif PostrgreSql

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.