Saltar al contenido

Laravel Eloquent vs generador de consultas: ¿Por qué usar eloquent para disminuir el rendimiento?

Si encuentras algo que no entiendes puedes dejarnos un comentario y trataremos de ayudarte lo mas rápido que podamos.

Solución:

Eloquent es la implementación de Laravel del patrón Active Record y viene con todas sus fortalezas y debilidades.

Active Record es una buena solución para procesar una sola entidad en forma CRUD, es decir, crear una nueva entidad con propiedades completas y luego guardarla en una base de datos, cargar un registro desde una base de datos o eliminarlo.

Se beneficiará mucho de las funciones de Eloquent, como la verificación sucia (para enviar ACTUALIZACIÓN de SQL solo para los campos que se han modificado), eventos de modelo (por ejemplo, para enviar alertas administrativas o actualizar contadores de estadísticas cuando alguien ha creado una nueva cuenta), rasgos ( marcas de tiempo, eliminaciones suaves, sus características personalizadas) carga ansiosa/perezosa, etc. También puede aplicar un patrón controlado por dominio e implementar algunas piezas de lógica empresarial en sus entidades de Active Record, por ejemplo, validación, gestión de relaciones, cálculos, etc.

Pero, como ya sabe, Active Record tiene un precio de rendimiento.

Cuando procesa un solo registro o algunos registros, no hay nada de qué preocuparse. Pero para los casos en los que lee muchos registros (por ejemplo, para cuadrículas de datos, informes, procesamiento por lotes, etc.), el Laravel simple DB métodos es un mejor enfoque.

Para nuestras aplicaciones basadas en Laravel, estamos utilizando ambos enfoques según lo consideremos apropiado. Usamos Eloquent de Laravel para formularios de interfaz de usuario para procesar un solo registro y usar DB métodos (respaldados por vistas SQL con ajustes de rendimiento específicos del motor de base de datos adicionales) para recuperar datos para tablas de interfaz de usuario, tareas de exportación, etc. También funciona bien con API RESTful: elocuente para GET, PUT, POST, DELETE con un key y DB para GET sin key pero con filtros y clasificación y paginación.

Sí, en algún caso tienes razón. Cuando tengamos más datos y casi en todos los sitios, los datos no son realmente pequeños. Luego es mejor usar DB Query que Eloquent Query.

en un problema de rendimiento de Eloquent VS DB He oído que,

Insertar 1000 filas para una tabla simple Eloquent toma 1.2 segundos y en ese caso las fachadas DB toman solo 800 milisegundos (ms).

Entonces, ¿por qué entonces Eloquent? ¿No es necesario eso?

La respuesta es: Elocuente también es necesario. Porque-

Para crear una mejor relación y obtenga los resultados a la vista con tanta sintaxis simple, cuando sea necesario unirse.

Elocuente es también para quien no tiene mucho conocimiento de consulta SQL.

Un marco MVC siga las reglas de legibilidad del código, mantenibilidad del código y qué Elocuente es, ya lo sabes. Una comparación de código a continuación. Obviamente, Eloquent es mejor para leer.

// In Eloquent
$student = AppStudent::find($id);

// In DB facade
$student = DB::table('student')->where('id', $id)->first();

La parte más importante es si nosotros quiero cambiar otra base de datos, entonces la consulta sin procesar será un gran dolor de cabeza para nosotros y, en ese caso, Laravel Eloquent resolverá todos los problemas con una sola mano. Puede manejar diferentes tipos de bases de datos.

Entonces, cuando usamos las fachadas Eloquent y When DB:

  1. Cuando trabajemos en un sitio de registros simple y pequeño con CRUD simple y los registros no sean reales, use Eloquent allí.
  2. Cuando trabajemos en muchos registros, es mejor usar DB Query que Eloquent.

Entonces, finalmente se aclara que: cuándo usaremos Consulta de base de datos y cuándo usaremos Consulta elocuente.

Editar – Ejemplo de la vida real

  1. estoy haciendo un sitio web de la universidad. que puede contener un máximo 5,000 teachers and 10,000 students and some notices and files. Entonces es mejor hacer esto con Laravel Eloquent simple, que es muy estándar y legible.
  2. Ahora estoy haciendo un sitio como Desbordamiento de pila. que puede contener más de 1,000,0000 (1 crore) posts and many more things. Tendré que elegir las fachadas DB convencionales allí. Es más rápido para buscar las publicaciones de tantos registros.

Puede verificar el rendimiento de su consulta usando Laravel Debugbar (un paquete popular para verificar el rendimiento de consultas Eloquent/Base de datos/tiempos de ejecución)

Ahora es tu elección. Que quieres hacer…

Puede consultar aquí una comparación completa de código por código con el rendimiento, el consumo de memoria y la calidad del código sobre estos – https://devsenv.com/tutorials/laravel-eloquent-vs-db-query-builder-performance-and-other-statistics

Por qué Laravel Elocuente:

  1. Ejecutando consulta en un OOP conducta.
  2. Fácil de usar que la consulta sin formato o query builder.
  3. Sin vinculación con table schema. es decir, incluso si cambia el nombre de su mesa, no es necesario tocar una sola query(puede haber 1000 query) para que funcione. Simplemente cambie el nombre de la tabla en elocuente model.
  4. La relación entre las mesas se puede mantener de forma elegante. Solo mencionar el tipo de relación, nada más(JOIN, LEFT JOIN, RIGHT JOIN etc.) necesarios en la consulta para obtener datos de tablas relacionadas.
  5. Las consultas son muy legibles mientras se escriben con Eloquent en comparación con Query Builder.
  6. Puede usar métodos, ámbitos, accesorios, modificadores, etc. dentro de un modelo que es fácil de mantener.

Si guardas algún titubeo o disposición de acrecentar nuestro noticia eres capaz de ejecutar una observación y con placer lo ojearemos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *