前言
使用的版本
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 畢竟遇到後續的需求修改,會相對提升可塑性(好讀、好改)
