在Laravel 5.2中,如果使用DB門面代替Eloquent ORM,效能會提高多少?

來源:互聯網
上載者:User
看到2016 版 Laravel 系列入門教程(一)這裡有一段話:

Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 作者在開發第一版的時候花了整整三分之一的時間才搞出來 Eloquent。當然,“欲練此功,必先自宮”,Eloquent 也是 Laravel 中最慢的地方,迄今無法解決。(路由、自動載入、配置分散、視圖引發的效能問題都通過緩衝幾乎徹底解決了)

是否確實如此?用緩衝(比如redis)能夠解決Laravel的效能問題,除了Eloquent ORM?
如果使用DB門面代替Eloquent ORM,是不是就不需要建立Model了?也就是說MVC變成了VC?

回複內容:

看到2016 版 Laravel 系列入門教程(一)這裡有一段話:

Eloquent 是 Laravel 的 ORM,是 Laravel 系統中最強大的地方,沒有之一。當初 Laravel 作者在開發第一版的時候花了整整三分之一的時間才搞出來 Eloquent。當然,“欲練此功,必先自宮”,Eloquent 也是 Laravel 中最慢的地方,迄今無法解決。(路由、自動載入、配置分散、視圖引發的效能問題都通過緩衝幾乎徹底解決了)

是否確實如此?用緩衝(比如redis)能夠解決Laravel的效能問題,除了Eloquent ORM?
如果使用DB門面代替Eloquent ORM,是不是就不需要建立Model了?也就是說MVC變成了VC?

首先得吐槽,Laravel的很多文檔都喜歡過度擴張,例如上面這段,Eloquent和其他PHP架構中的ORM都是相似的味道,沒有什麼特別牛的地方。另外開發ORM確實花時間不少,主要是因為ORM中邏輯相對其他組件複雜很多,但你不能說花時間多久感天動地吧……
其次,ORM不等於Model,沒有ORM一樣可以做Model,例如我的架構Beaver(https://github.com/funcuter/beaver)中是設計了Model的,但至今沒上ORM(如上面說的,ORM好用,但是效能差,我效能差的東西比較反感)。我設計中是Model直接操作DB,繞過ORM這一層,一樣可以實現正常的操作。

Model更像是自己拆分出去的模組的一個SQL查詢集合,那麼這樣理解來,要不要用M其實是自己的選擇,就像早期的時候SQL語句是直接寫在頁面上的。如果你那麼在乎效能,那麼也可以按照樓上說的直接用DB去執行原生的SQL。

不會提高 Laravel的設計思路註定了就是低效能的代名詞 純粹是為了證明php其實也可以用上設計模式,實際上效能屬於墊底的,效能跟zf一個層級,其實論設計模式,zf更強一些

不為站隊,不為裝逼,只是討論技術問題

https://phphub.org/topics/1396 同樣機器配置不同架構實測資料

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.