我是ORM的對象 - 關係映射的粉絲,我在過去的一年半中一直在使用它。在此之前,我使用JDBC編寫原始查詢,並使數據庫通過存儲過程進行繁重的工作。使用ORM,我最初很樂意做類似coach.manager
和manager.coaches
這些非常簡單易讀的內容。對象關係映射的缺點
但隨着時間的推移,在衆多的協會中爬行,最後我做了a.b.c.d
,它們在幕後向各個方向發射查詢。使用rails和ruby,垃圾收集器變得瘋狂並且花費了瘋狂的時間來加載一個非常複雜的頁面,這個頁面涉及的數據相對較少。我不得不用一個簡單的存儲過程替換這個ORM樣式代碼,我看到的結果是巨大的。耗時50秒的頁面現在只需要2秒鐘。
有了這個巨大的差異,我應該繼續使用ORM嗎?與原始查詢相比,它有非常明顯的開銷。
一般來說,使用像Hibernate,ActiveRecord這樣的ORM框架的一般缺陷是什麼?
您是否在使用懶惰抓取?基本上'ORM'的加載和你說的一樣多... –
@Petar Minichev:嗯,我不能直接回答這個問題,因爲我正在做所有類型的訪問,ORM允許我。在任何地方都有一點折衷 – bragboy