sql >> Databáze >  >> RDS >> Mysql

Laravel Eloquent vs query builder – Proč používat eloquent ke snížení výkonu

Výmluvná je Laravelova implementace vzoru Active Record a přichází se všemi svými silnými a slabými stránkami.

Aktivní záznam je dobré řešení pro zpracování jedné entity způsobem CRUD - to znamená vytvoření nové entity s vyplněnými vlastnostmi a její uložení do databáze, načtení záznamu z databáze nebo odstranění.

Hodně budete těžit z funkcí Eloquent, jako je špinavá kontrola (odeslat SQL AKTUALIZACE pouze pro pole, která byla změněna), modelové události (např. zasílání upozornění správce nebo aktualizace počítadel statistik, když někdo vytvořil nový účet), vlastnosti ( časová razítka, měkké mazání, vaše vlastní vlastnosti) dychtivé/líné načítání atd. Můžete také použít vzor řízený doménou a implementovat některé části obchodní logiky ve svých entitách aktivního záznamu, například ověřování, správu vztahů, výpočty atd.

Ale jak již víte, Active Record přichází s určitou cenou za výkon.

Když zpracováváte jeden záznam nebo několik záznamů, není se čeho obávat. Ale pro případy, kdy čtete velké množství záznamů (např. pro datové mřížky, pro sestavy, pro dávkové zpracování atd.), prostý Laravel DB metody je lepší přístup.

Pro naše aplikace založené na Laravelu používáme oba přístupy, jak považujeme za vhodné. Ke zpracování jednoho záznamu a použití DB používáme formuláře Laravel's Eloquent for UI metody (podporované pohledy SQL s dalšími vylepšeními výkonu specifických pro databázový stroj) pro načítání dat pro tabulky uživatelského rozhraní, exportní úlohy atd. Funguje také dobře s RESTful API – výmluvné pro GET, PUT, POST, DELETE s klíčem a DB pro GET bez klíče, ale s filtry a řazením a stránkováním.



  1. Upgradoval jsem SQL Server ODBC Driver a výkon byl negativně ovlivněn. Co můžu dělat?

  2. Nová funkce pro BYOC – pozastavení a obnovení clusterů

  3. Jak vypočítat procento sloupce v MySQL

  4. O výhodách tříděných cest