前言
使用的版本
Laravel: 7
php: 7.3
我們都知道在 Laravel 裡面取得資料庫資料可以使用 Eloquent ORM
、Query Builder
,
今天就來聊聊兩者到底差在哪裡巴 ~
主要內容
Eloquent ORM
透過物件的方式調用資料,
可參考 文件,相關語法如下
|
|
Query Builder
直接對資料表進行調用,
可先參考 文件,相關語法如下
|
|
以上兩段程式碼,都是在取 name = Jason 的人,取出來的值也能直接使用
速度比較
因為我這段SQL比較簡單,所以很難看出速度哪個比較快
於是我網路上找了一下資源,如下所示
(圖片資料參考於 頁面)
Query Builder
調用的速度上比 Eloquent
還要快很多 (將近一倍)
這樣你說 Query Builder
比較快,執行上語法也差異不大,為何還要選擇使用 Eloquent
呢?
Eloquent 優勢在哪裡?
- 增加程式碼閱讀
- relationship 關聯其他 Model
- Accessors
- Soft Deletes
- Scopes
- Mutators & Casting …… 等等功能
雖然 Eloquent
的效能比較不好,但因著這些強大功能覺得也是種取捨
結論
我大部分的功能都會使用 Eloquent
與 Collection
達成一個組合技,規劃並完成,
不過若是一次性或不太會異動的功能,感覺就可以考慮看看 Query Builder
,
雖然我還是都使用 Eloquent
畢竟遇到後續的需求修改,會相對提升可塑性(好讀、好改)