我正在使用ZK框架,Hibernate,Spring和Mysql的項目。使用JPA(休眠)VS存儲過程
我需要從Mysql數據庫生成一些圖表,但是在計算了我需要計算這些圖表值的對象數量後,我發現它有1400多個對象和相同數量的查詢和事務。
所以我想如果在Mysql中使用存儲過程來計算這些值並將它們保存在單獨的表中(使用接近數據倉庫的架構),然後使用我的Web應用程序來讀取這些表的值並顯示他們作爲圖表。
我想知道速度和性能,哪些方法更好?
謝謝
我正在使用ZK框架,Hibernate,Spring和Mysql的項目。使用JPA(休眠)VS存儲過程
我需要從Mysql數據庫生成一些圖表,但是在計算了我需要計算這些圖表值的對象數量後,我發現它有1400多個對象和相同數量的查詢和事務。
所以我想如果在Mysql中使用存儲過程來計算這些值並將它們保存在單獨的表中(使用接近數據倉庫的架構),然後使用我的Web應用程序來讀取這些表的值並顯示他們作爲圖表。
我想知道速度和性能,哪些方法更好?
謝謝
沒有辦法告訴,真的,沒有更多的細節。然而:
你想要做的就是所謂的非規範化。這是加速報告並使其更容易的公認技術。 (如果沒有,你denormalisation失敗!)當它工作它具有以下優點:
在另一方面:
這樣做的一種極端形式是採用OLTP數據庫(標準數據庫)並將其導出到Analysis數據庫(又名Cube或OLAP數據庫)中。
非規範化問題之一是a)它通常是一項重大的工作,b)它增加了額外的代碼,增加了複雜性,從而增加了支持成本,c)它可能沒有足夠的(或任何)差異。因此,通常不會這樣做,直到你知道你有問題。當您完成基本數據庫的報告並發現它們太難寫入和/或運行速度太慢時,就會發生這種情況。我強烈建議,只有當你達到那個點時,你纔會去反規範化。
有些時候你不需要那樣做,但在25年的發展中我只看到過1個這樣的例子;該決定得益於管理層爲了政治目的而使用OLAP數據庫的願望。