Mysql
 sql >> база данни >  >> RDS >> Mysql

Laravel Eloquent срещу конструктор на заявки - Защо да използвате eloquent за намаляване на производителността

Eloquent е реализация на модела Active Record на Laravel и идва с всичките си силни и слаби страни.

Active Record е добро решение за обработка на единичен обект по CRUD начин – тоест, създайте нов обект с попълнени свойства и след това го запишете в база данни, заредете запис от база данни или изтрийте.

Ще се възползвате много от функциите на Eloquent като мръсна проверка (за изпращане на SQL UPDATE само за полетата, които са променени), събития на модела (например за изпращане на административни сигнали или актуализиране на статистически броячи, когато някой е създал нов акаунт), характеристики ( времеви марки, меки изтривания, вашите персонализирани черти) нетърпеливо/мързеливо зареждане и т.н. Можете също да приложите модел, управляван от домейн, и да приложите някои части от бизнес логиката във вашите обекти Active Record, например валидиране, управление на връзки, изчисления и т.н.

Но, както вече знаете, Active Record идва с известна цена за производителност.

Когато обработвате един или няколко записа, няма за какво да се притеснявате. Но в случаите, когато четете много записи (например за мрежи с данни, за отчети, за пакетна обработка и т.н.), обикновеният Laravel DB методи е по-добър подход.

За нашите базирани на Laravel приложения ние използваме и двата подхода, както смятаме за подходящи. Използваме Eloquent на Laravel за UI форми за обработка на един запис и използваме DB методи (подкрепени от SQL изгледи с допълнителни настройки на производителността, специфични за базата данни) за извличане на данни за таблици с потребителски интерфейс, задачи за експортиране и т.н. Работи добре и с RESTful API - Eloquent за GET, PUT, POST, DELETE с ключ и DB за GET без ключ, но с филтри и сортиране и пейджинг.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Docker-compose проверява дали mysql връзката е готова

  2. MySQL ограничения на външния ключ, каскадно изтриване

  3. Съхранение на SHA1 хеш стойности в MySQL

  4. Как да получите данни за продажбите за последните 3 месеца в MySQL

  5. Не може да се изтрие или актуализира родителски ред:ограничение на външния ключ е неуспешно