MongoDB最佳实践畅谈-计费系统

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB最佳实践畅谈-计费系统 MongoDB的最佳实践,在以下情况,你应该使用MongoDB。 1)高写负载的场景 MongoDB默认更适合高写入而不是事务安全。

MongoDB最佳实践畅谈-计费系统

MongoDB的最佳实践,在以下情况,你应该使用MongoDB。

1)高写负载的场景

MongoDB默认更适合高写入而不是事务安全。如果你需要为每个客户端载入巨量的、低价值的数据,那么MongoDB很适合。假如你需要载入上百万的交易记录,那么这需要额外的安全措施,MongoDB不适合。

2)在不可靠的环境需要高可用场景

设置复制集(服务器做主从集群)很容易,速度也很快。此外,从某个节点(或数据中心)做故障恢复是实时的、安全的、自动的。

3)数据增长巨大,能把数据分片的场景

数据库做伸缩是很困难的(单个MySQL表在数据量达到5GB~10GB时,它的性能会显著下降)。如果你需要对数据库进行分区和分片,MongoDB内建了这些机制,完成这些工作很简单。

4)数据是基于位置的场景

MongoDB内建了支持空间的功能,因此从指定的位置查找相关的数据是非常快速和准确的。

5)数据集很大(从1GB起步)以及数据的模式是不稳定的场景

在一些关系数据库中要增加新的列字段,数据库会锁定整个表,或者或让主数据库服务器的负载和性能下降。通常,当数据表的尺寸超过1GB后,这种情况性能下降的更厉害。而MongoDB是无模式的,增加新的字段,对已有的行(称为文档)无影响。其次是当应用程序改变后,MongoDB不需要DBA来修改数据模式。

6)无DBA的场景

如果你的公司没有专职的DBA,你也不需要对数据做联合或标准化,那么你可以考虑MongoDB。MongoDB在持久化方面做到很好,类数据可以被序列化成JSON数据,并加以存储。

注意:请遵循MongoDB的最佳实践,以避免一些陷阱。

真实案例:计费

国外的奥弗?科恩发布了一个号称下一代的开源计费解决方案,此方案利用MongoDB作为其后端存储。此计费系统已经运行于以色列发展最快的移动运营商的产品环境,每个月能处理超过500M的呼叫数据记录CDR。奥弗?科恩介绍了它是怎样利用MongoDB的优势的:

1)无模式的设计

无模式设计可以快速添加新呼叫数据记录类型到系统中。它让BillRun保持数据存储的通用性。

2)可伸缩

BillRun的产品网站目前已经在单个数据表中管理了几个TB的数据,w/o可通过添加新字段进行限制。

3)快速的复制集

复制集能够满足易于构建多数据中心DRP和高可用HA解决方案的规则。

4)分片

分片使的线性扩容很清晰可控,不至于出现超出预算的情况。

5)每秒插入的呼叫数据记录CDR的数量超过2,000次,MongoDB的架构非常适合高写入场景。你还可以保证带findAndModify(通常比较慢)和两阶段提交的事务的处理。 

6)开发者可以面向查询,使得能够写出优雅的查询。

7)基于位置

基于位置可用于分析用户的使用情况,以此决定在何处继续建设蜂窝基础设施。

最后,MongoDB是一个伟大的数据库,你必须把它使用在合适的场景才能保证你获得市场竞争的优势。

目录
相关文章
|
8月前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
577 0
|
运维 NoSQL BI
简道云搭载阿里云MongoDB数据库,帮助数以万计企业重构业务系统
通过与MongoDB和阿里云团队的合作,让简道云少走了弯路,保障了线上服务的长期稳定运行,提高了吞吐效率,并相应降低了线上运行成本
|
存储 NoSQL JavaScript
MongoDB存储过程实战:聚合框架、脚本、最佳实践,一文全掌握!
【8月更文挑战第24天】MongoDB是一款备受欢迎的文档型NoSQL数据库,以灵活的数据模型和强大功能著称。尽管其存储过程支持不如传统关系型数据库,本文深入探讨了MongoDB在此方面的最佳实践。包括利用聚合框架处理复杂业务逻辑、封装业务逻辑提高复用性、运用JavaScript脚本实现类似存储过程的功能以及考虑集成其他工具提升数据处理能力。通过示例代码展示如何创建订单处理集合并定义验证规则,虽未直接实现存储过程,但有效地演示了如何借助JavaScript脚本处理业务逻辑,为开发者提供更多实用指导。
258 2
|
存储 监控 NoSQL
【MongoDB 专栏】MongoDB 分片策略与最佳实践
【5月更文挑战第10天】MongoDB 分片是应对大数据量的扩展策略,涉及哈希和范围分片两种策略。分片架构包含分片服务器、配置服务器和路由服务器。最佳实践包括选择合适分片键、监控调整、避免热点数据等。注意数据分布不均和跨分片查询的挑战。通过实例展示了如何在电商场景中应用分片。文章旨在帮助理解并优化 MongoDB 分片使用。
563 3
【MongoDB 专栏】MongoDB 分片策略与最佳实践
|
NoSQL Unix MongoDB
MongoDB-系统时钟跳变引发的风波
MongoDB-系统时钟跳变引发的风波
|
JSON NoSQL MongoDB
mongodb 系统命令总结
mongodb 系统命令总结
560 0
|
存储 NoSQL Java
使用MongoDB实现NoSQL数据库的最佳实践
使用MongoDB实现NoSQL数据库的最佳实践
|
监控 NoSQL 测试技术
MongoDB性能最佳实践:如何制定更有效的基准测试?
感谢你与我们一起走过这段MongoDB性能最佳实践之旅,希望你能从中获取一些有用的信息
2237 3
|
NoSQL 安全 MongoDB
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
精准数据清理:掌握 MongoDB 删除集合的方法与最佳实践
695 0
|
存储 NoSQL 数据管理
MongoDB关系处理:优化数据管理、提升性能的最佳实践
MongoDB关系处理:优化数据管理、提升性能的最佳实践
126 0

推荐镜像

更多