Então, eu estou tentando descobrir o que é mais rápido, db_query, db_select ou EntityFieldQuery. Atualmente estou usando EntityFieldQuery. Estou pegando cerca de 1600 entradas de nós.
Sei que isso pode ser desgastante para o sistema, então só quero descobrir qual é a melhor opção para capturar 1600 nós. Economizar segundos ou mesmo milissegundos importaria muito com o aplicativo que estou construindo.
Agradecemos antecipadamente por suas respostas.
Respostas:
Para responder sua pergunta resumidamente, db_query é o mais rápido! Aqui estão algumas razões, fatos e números compilados a partir de diferentes perguntas, fontes:
Um simples estudo desta questão, apresentou os seguintes resultados:
e isto
Se você notar acima, o db_select faz mais chamadas de função e utiliza mais memória que o db_query.
Eu acho que a escolha deve ser baseada exclusivamente em suas necessidades. O EntityFieldQuery pode ser mais lento, mas oferece muitas vantagens, como sintaxe simples, armazenamento em campo que pode ser conectado, acoplamento flexível e muito mais.
fonte
Essa é uma péssima idéia para 1600 nós, não percorra as APIs e use o EntityFieldQuery. Você está otimizando a coisa errada.
fonte
Se você deseja apenas os dados do campo de todos os 1600 nós, o EFQE pode ser útil. Se você já possui o EFQ, poderá descobrir o que precisa consultando a página da sandbox.
fonte