Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Laravel Eloquent kontra konstruktor zapytań — dlaczego używać eloquent do zmniejszenia wydajności?

Eloquent jest implementacją wzorca Active Record firmy Laravel i zawiera wszystkie jego mocne i słabe strony.

Active Record to dobre rozwiązanie do przetwarzania pojedynczej encji w sposób CRUD - czyli tworzenia nowej encji z wypełnionymi właściwościami, a następnie zapisywania jej w bazie danych, ładowania rekordu z bazy danych lub usuwania.

Wiele skorzystasz z funkcji Eloquent, takich jak sprawdzanie nieczystości (wysyłanie aktualizacji SQL tylko dla pól, które zostały zmienione), zdarzenia modelowe (np. wysyłanie alertów administracyjnych lub aktualizowanie liczników statystyk, gdy ktoś utworzy nowe konto), cechy ( znaczniki czasu, nietrwałe usunięcia, Twoje niestandardowe cechy) szybkie/leniwe ładowanie itp. Możesz również zastosować wzorzec oparty na domenie i zaimplementować niektóre elementy logiki biznesowej w encjach Active Record, na przykład walidację, zarządzanie relacjami, obliczenia itp.

Ale, jak już wiesz, Active Record ma pewną cenę za wydajność.

Kiedy przetwarzasz pojedynczy rekord lub kilka rekordów, nie ma się czym martwić. Ale w przypadkach, gdy czytasz wiele rekordów (np. dla siatek danych, raportów, przetwarzania wsadowego itp.) zwykły DB Laravel metod jest lepszym podejściem.

W przypadku naszych aplikacji opartych na Laravelu stosujemy oba podejścia, które uważamy za właściwe. Używamy Eloquent firmy Laravel dla formularzy interfejsu użytkownika do przetwarzania pojedynczego rekordu i używamy DB metody (wsparte widokami SQL z dodatkowymi poprawkami wydajności specyficznymi dla silnika bazy danych) do pobierania danych dla tabel interfejsu użytkownika, zadań eksportu itp. Działa również dobrze z interfejsami API RESTful - Eloquent dla GET, PUT, POST, DELETE z kluczem i DB dla GET bez klucza, ale z filtrami, sortowaniem i stronicowaniem.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Eksportuj i importuj wszystkie bazy danych MySQL jednocześnie

  2. Zmień i zresetuj hasło roota MySQL

  3. Jak zastąpić MySQL Perconą w Plesk CentOS 7?

  4. Jak dodać kolumnę automatycznego przyrostu w istniejącej tabeli w MySQL?

  5. Jaki jest najlepszy sposób na stopniowe usuwanie starych wierszy z MySQL?