關聯式資料庫和NoSQL結合使用:MySQL + MongoDB

banq發表於2010-08-06
Home Page

作者使用一個案例來說明MySQL+MongoDB結合使用,發揮各自所長,並且認為他們互補性很強。

當然,這其中不可避免引入DDD中的程式設計設計模式 Repository倉儲模式,透過它能夠將資料儲存方式和應用分離開來,這樣,我們的程式就不受限於任何儲存方式,無論是NoSQL或關聯式資料庫。

這個案例是一個按效果付費Pay-for-use的分析案例,類似 Google Analytics軟體。

該應用有如下特點:
1.授權支付交易: 需要收集支付的信用卡並儲存他們的交易記錄。
2.大量唯一訪問量和頁訪問量資料: 這個資料量是非常巨大。
3.高效能插入: 支援以每秒插入頻率記錄訪問量
4.實時報告: 能夠實時分析唯一訪問量和頁訪問量的狀況。
5.高可用性:線上時間99.99%

第一種支付交易實現:
由於支付交易幾乎和唯一訪問量之間沒有什麼直接聯絡,這是一個shared-nothing架構,所以,可以分為兩個過程實現:
1.使用MonggoDB記錄唯一訪問量,每個月把過去一個月的唯一訪問量進行計數。
2.根據MongoDB技術資料,將相應支付資料插入MySQL。

對於後面4個需求,作者認為NoSQL的MongpDB都勝於MySQL。









相關文章