Así que estoy tratando de averiguar qué es más rápido db_query, db_select o EntityFieldQuery. Actualmente estoy usando EntityFieldQuery. Estoy agarrando alrededor de 1600 entradas de nodo.
Me doy cuenta de que esto puede ser gravoso para el sistema, así que solo quiero descubrir cuál es la mejor opción para obtener 1600 nodos. Reducir segundos o incluso milisegundos importaría mucho con la aplicación que estoy creando.
Gracias de antemano por sus respuestas.
Respuestas:
Para responder a su pregunta en resumen, db_query es el más rápido. Aquí hay algunas razones, hechos y cifras compilados de diferentes preguntas, fuentes:
Una simple búsqueda en Google de esta pregunta, ofrece los siguientes resultados:
y esto
Si observa lo anterior, db_select realiza más llamadas a funciones y utiliza más memoria que db_query.
Supongo que la elección debe basarse únicamente en sus requisitos. EntityFieldQuery puede ser más lento, pero ofrece muchas ventajas, como la sintaxis simple, el almacenamiento de campo es conectable, el acoplamiento suelto y muchos más.
fuente
Esa es una muy mala idea, para 1600 nodos, no rodee las API y use EntityFieldQuery. Estás optimizando la cosa equivocada.
fuente
Si solo desea los datos de campo de los 1600 nodos, EFQE podría ser útil. Si ya tiene el EFQ, debería poder averiguar qué necesita mirando la página de sandbox.
fuente