簡體   English   中英

Native SQL(使用MySQL)與使用Hibernate ORM的性能差異?

[英]Performance difference of Native SQL(using MySQL) vs using Hibernate ORM?

我使用Spring MVC作為一個應用程序,涉及管理的多級后端和客戶/成員前端。 該項目最初啟動時沒有框架和簡單的本機JDBC調用來進行數據庫訪問。

隨着項目的顯着增長(一如既往),我進行了更為重要的數據庫調用,有時會查詢大量的選擇。

我正在盡我所能來處理我的db調用以密切模擬對象關系映射最佳實踐,但我仍然只是使用JDBC。 我一直在考慮是否應該過渡到冬眠,但不確定它是否值得。 如果值得獲得性能,我願意這樣做。

使用Hibernate(甚至只是對象關系映射)比使用JDBC的本機SQL有任何性能提升嗎?

使用Hibernate(甚至只是對象關系映射)比使用JDBC的本機SQL有任何性能提升嗎?

使用ORM,數據映射器等不會使相同的SQL查詢運行得更快。 但是,在使用Hibernate時,您可以從延遲加載二級緩存查詢緩存等功能中受益,這些功能可能有助於提高性能。 我不是說Hibernate對於每個用例都是完美的(對於特殊情況,Hibernate不能很好地處理,你總是可以回退到原生SQL)但是它做得非常不錯,並且肯定會縮短開發時間(即使在增加時間之后)花在優化上)。

但是說服自己的最好方法就是衡量事物,在你的情況下,我可能會創建一個涵蓋一些代表性場景的Hibernate原型並對其進行測試。

ORM讓你留在OOP世界中,但這是以犧牲性能為代價的,特別是在我們的案例中有很多關系。 我們使用Hibernate作為默認值,在需要時使用jdbc進行性能優化。

Hibernate將使您的應用程序的開發和維護更容易,但它不一定會使數據庫訪問更快。

如果您的本機JDBC調用使用低效的SQL,那么您可能會看到一些性能提升,因為HIbernate往往會生成良好的SQL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM