Sí. Seguro.
Es importante conocer el SQL real que hace el trabajo por usted
Aunque hemos estado viviendo en el mundo de las ORM y las bibliotecas que encapsulan las consultas SQL subyacentes que se forman cuando interactúa con un RDBMS.
- ¿Cuáles son las cosas que debe saber un desarrollador de backend de Android?
- Para el desarrollo web de back-end, ¿es mejor aprender PHP o Python?
- ¿Por qué tantos desarrolladores de IU piensan que el backend desaparecerá?
- ¿Qué es un desarrollo front-end y backend?
- ¿Son .NET o PHP mejores para un usuario de servidor?
En la superficie, consultar la base de datos con el SQL generado parece sencillo, pero a menudo nos perdemos una posible optimización y deberíamos estar en condiciones de decir las deficiencias del ORM que se está utilizando.
Durante mucho tiempo, antes de darse cuenta de este cuello de botella, los marcos web populares como Rails y Django solían enviar ORM que encapsulaban las interacciones de DB del usuario, lo que facilitó a un ingeniero promedio el desarrollo del lado del servidor.
Habilitar las interacciones a través de las API REST fue una cuestión de pocos golpes de tecla.
Sin embargo, hay momentos en que estos ORM no generan SQL optimizado y los usamos en todas partes sin pensar que son solo nuestras consultas las que están ralentizando el sistema.
Un ejemplo clásico
Una tabla de Alumno se asignaría directamente a un recurso de Alumno. Habilitar CRUD y agregar algunas configuraciones fue pan comido.
pero digamos que quería hacer API ligeramente complicadas.
Querías buscar estudiantes y debajo de cada estudiante querías información anidada sobre su escuela.
La mayoría de los ORM consultarían la base de datos por alumno y buscarían los detalles de su escuela y luego generarían el resultado combinado.
Uno no se daría cuenta de esto si la aplicación hasta que la aplicación se vuelve viral y recibe muchos éxitos, los nodos desaparecerían en poco tiempo y vería que las solicitudes caducan con bastante frecuencia.
Esto se puede optimizar fácilmente obteniendo los detalles de los estudiantes de una vez y luego obteniendo los detalles de las escuelas de esos estudiantes en una segunda visita y luego combinando los resultados en código para generar el resultado.
Claro … Por ahora, tanto Django como Rails han optimizado sus ORM para tales casos de uso, pero puede haber más casos en los que uno debería estar en condiciones de decir cuál es el cuello de botella y qué está causando problemas.
Y eso es lo que separa a los ingenieros promedio de los que pueden mirar más allá de lo que el marco hace por ellos.
Y no solo se limita a MySQL y Postgres.
Incluso si está interactuando con MongoDB / Redis o, para el caso, ElasticSearch, debe saber qué está haciendo la biblioteca y estar al tanto de los posibles errores y fallas.