Tengo mi aplicación django ejecutándose en el servidor 1 que está conectado a Amazon RDS (PostgreSQL) presente en el servidor 2 . En el día a día, tengo que interactuar con la base de datos a menudo para escribir/obtener/consultar datos.
Actualmente, estoy siguiendo el ORM de django a través de la aplicación. Solo quería saber si habría alguna mejora en el rendimiento si uso PostgreSQL raw sql quereis usando el cursor de conexión django.db sobre ORM.
Las siguientes son las formas propuestas para una consulta de muestra.
ORM de Django
nombre_tabla.objetos().todos()
PostgreSQL raw sql quereis usando el cursor de conexión django.db
¿Puede alguien sugerir cuál de los anteriores conducirá a un aumento más rápido en el rendimiento siempre que mi base de datos se ejecute en RDS en otro servidor?
El uso de una consulta sin formato dará como resultado una diferencia de rendimiento casi nula. De hecho, el ORM usa algunos ciclos para construir la consulta, pero eso es insignificante en comparación con el trabajo de enviar la consulta, la base de datos recibe, interpreta y ejecuta la consulta y envía los resultados.
En algunos casos, el ORM puede hacer una consulta (demasiado) complicada, pero ese no es el caso si obtiene todos los registros. A veces requiere experiencia en ORM (al igual que requiere experiencia en SQL) para encontrar una consulta que funcione mejor.
Además, ya puede dejar que Django ORM haga el trabajo por usted usando .values() para que sea más conveniente construir un DataFrame :
res = pd.DataFrame(table_name.objects. values() )