关系数据库和NoSQL结合使用:MySQL + MongoDB

时间:2022-07-23 08:56:42

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。