sql >> Database teknologi >  >> RDS >> Mysql

Laravel Eloquent vs query Builder - Hvorfor bruge veltalende for at reducere ydeevnen

Eloquent er Laravels implementering af Active Record-mønsteret, og det kommer med alle dets styrker og svagheder.

Active Record er en god løsning til at behandle en enkelt enhed på CRUD-måde - det vil sige oprette en ny enhed med udfyldte egenskaber og derefter gemme den i en database, indlæse en post fra en database eller slette.

Du vil drage meget fordel af Eloquents funktioner såsom dirty checking (for at sende SQL UPDATE kun for de felter, der er blevet ændret), modelhændelser (f.eks. at sende administrative advarsler eller opdatere statistiktællere, når nogen har oprettet en ny konto), træk ( tidsstempler, bløde sletninger, dine brugerdefinerede træk) ivrig/doven indlæsning osv. Du kan også anvende domænedrevet mønster og implementere nogle stykker forretningslogik i dine Active Record-enheder, f.eks. validering, administration af relationer, beregninger osv.

Men som du allerede ved, kommer Active Record med en præstationspris.

Når du behandler en enkelt post eller nogle få poster, er der intet at bekymre sig om. Men i tilfælde, hvor du læser mange poster (f.eks. for datagrids, til rapporter, til batchbehandling osv.), er den almindelige Laravel DB metoder er en bedre tilgang.

Til vores Laravel-baserede applikationer bruger vi begge tilgange, som vi finder passende. Vi bruger Laravels Eloquent for UI-formularer til at behandle en enkelt post og bruge DB metoder (understøttet af SQL-visninger med yderligere databasemotorspecifikke ydelsesjusteringer) til at hente data til UI-tabeller, eksportopgaver osv. Det fungerer også godt med RESTful API'er - Veltalende til GET, PUT, POST, DELETE med en nøgle og DB til GET uden nøgle men med filtre og sortering og personsøgning.



  1. Oprettelse af en tabel ud fra en forespørgsel ved hjælp af et andet tablespace (Oracle SQL)

  2. foreach %dopar% + RPostgreSQL

  3. Kapacitetsplanlægning for MySQL og MariaDB - Dimensionering af lagerstørrelse

  4. mysql vælg top n max værdier