`
dank
  • 浏览: 28306 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

为什么我们放弃使用MongoDB

阅读更多

     公司开始新项目时部分数据服务选择使用MongoDB,而且在同事内部作了MongoDB应用的扫盲介绍,当时貌似Mysql派和MongoDB派相互之间都没有能说服对方,所以MongoDB的使用就一直延续下来。直到几天前,在考虑系统上线发布和运营时,一些问题出现了。

 

1.MongoDB存储文件会急剧增大,如果使用32位操作系统很容易达到单个文件体积上限。所以对于MongoDB必须使用64位操作系统,而在亚马逊的EC2中只有是large以上类型的instanceCPU才是64位。

2.MongoDB一般都推荐是多点部署,互为镜像,这样保证服务的延续性和数据的安全性。所以如果需要提供稳定的服务,至少需要2EC2instance来作MongoDB服务。而实际对于我们大数据量计算操作可能在一天内累计只有大概1小时,其余时间更多只是少量数据查询操作。

 

      综合以上两点,如果继续使用MongoDB,至少需要两台large以上instance,并且是7X24小时运行,感觉是对运算能力的浪费。

      再三讨论后我们决定暂时放弃MongoDB, 将这部分的运算改为使用MapReduce 来处理。亚马逊的MapReduce可以充分体现按需使用运算能力的特性,在使用MapReduce完成所有计算需要后,再将需要查询使用的结果数据导入到Mysql数据库中。这样即满足了那1小时内需要的运行能力,又满足了其余时间对计算结果的查询需求。

 

      通过以上的事例,说明在使用云计算平台时,对程序开发技术的选型必须充分考虑到平台能够提供虚拟硬件设备的技术指标。并且需要转变以往的设计思路,更多考虑到云平台方便启动和关闭instance的特性。尽量减少7X24长时间使用相同一台instance作服务的应用,如果这样的服务无法避免时,应该考虑多台冗余,并在程序设计中去除对instance的内网ip地址耦合,当某台instance出现故障而需要更新新的instance时,内网ip 地址变化不会导致程序无法正常运行。

2
2
分享到:
评论
3 楼 dank 2011-06-07  
为什么会关心是上海什么公司呢?
2 楼 凤凰山 2011-06-07  
Technoboy  同问?
1 楼 Technoboy 2011-06-03  
小弟冒昧问一下,楼主在上海什么公司?

相关推荐

    MongoDB简介与实践.pdf

    存在关于NoSQL的一些误解,比如:认为NoSQL数据库完全不使用SQL语句,或者将所有非关系型数据库都划分为NoSQL,以及认为需要完全放弃使用关系型数据库。实际上,NoSQL = Not Only SQL,即除了SQL以外,还有其他的...

    MongoDB使用手册

    ### MongoDB使用手册知识点详解 #### 一、MongoDB概述 **1.1 什么是非关系型数据库(NoSQL)?...通过本篇内容的学习,可以帮助初学者快速掌握MongoDB的基本使用方法,为后续更深入的学习打下坚实的基础。

    MongoDB交流-基础知识介绍

    ### MongoDB基础知识介绍 #### NOSQL简介 - **概述**:NoSQL(Not Only SQL)是一种非关系...然而,在选择使用MongoDB时,也需要考虑到其可能存在的局限性,例如与关系型数据库相比在事务处理和复杂查询方面的不足。

    MongoDB简介与实践

    通过上述内容,我们可以看到MongoDB不仅在技术层面上具有诸多优势,而且在社区支持和生态系统方面也表现出色。无论是对于初创企业还是大型组织,MongoDB都是一款值得考虑的强大数据库解决方案。

    NoSQL数据库-MongoDB和Redis

    而NoSQL数据库,尤其是MongoDB,通过放弃某些特性来换取更高的性能和扩展性,适用于许多需要高性能和高扩展性的场景。 #### 二、MongoDB简介 MongoDB是一种非关系型文档数据库,它支持模式自由的数据模型,这意味...

    软件公司为何要放弃MongoDB?

    Olery成立最初是使用MySQL来存储(用户、合同等等)核心数据,用MongoDB来存储评论及其类似的数据(即哪些在数据丢失的情况下很容易恢复的数据)。一开始,这样的安装运行的非常好,然而,随着公司的成长,开始遇到了...

    【爬虫应用教程】-mongodb.pptx

    1. **易扩展**:MongoDB放弃了传统的关系型数据库中的关系性,使得数据之间没有关联,这使得扩展变得更加容易。无关系性也简化了数据库架构,减少了扩展时的复杂性。 2. **大数据量、高性能**:MongoDB具备出色的...

    MongoDB的使用过程

    环境 Docker 安装 MongoDB ...docker run -itd –name mongo -p 27017:27017 ...放弃MongoDBVue 客户端用MongoChef git项目 node使用 [转] 深入浅出mongoose—–包括mongoose基本所有操作,非常实用!!! var Tank = mongoos

    java的MongoDB驱动包资源

    java的MongoDB驱动包

    java操作MongoDB数据库代码实例

    该rar包中包括MOngoDB数据库操作基本的增删改查,以及在CMD命令行中怎么配置MOngodb和增删改查,还有就是连接mongoDB的jar包和详细的操作文档,本来想上传NOde.js来着,可是只能上传60兆,只能放弃了,不过这些已经...

    MongoDB简介 MongoDB五大特色

    基本思路就是将原来”行”(row)的观念转化为更加灵活的”文档”(document)模型.面向文档的方式可以将文档或者数组内嵌进来,所以可以用一条记录表示非常复杂的层次关系. MongoDB没有模式:文档的键不会事先定义也不会...

    NoSQL技术+neo4j+mongodb+redis技术简单讲解

    NoSQL技术,全称为"Not Only SQL",是在2009年兴起的一种非关系型数据库技术,旨在应对大规模数据处理和高并发需求。NoSQL数据库的设计理念是放弃传统的表格关系模型,采用更灵活的数据模型,如键值对、列存储、文档...

    mongodb4.0

    3. **聚合框架增强**:MongoDB 4.0改进了聚合框架,允许用户在聚合管道中使用JavaScript函数,增加了灵活性和处理复杂分析的能力。 4. **改变流(Change Streams)**:此版本引入了改变流,它提供了一种实时监控...

    simplemongophp:一个简单PHP库包装器,可与MongoDb(mongodb.org)一起使用

    话虽这么说,多年来,似乎有人从中受益匪浅,所以我放弃了它,如果有人使用它,我很高兴继续接受PR。 -伊恩描述这是一个非常简单的库,用于包装Mongo API,并使PHP Web应用程序使用起来更加方便。 如果需要更复杂的...

    MongoDB中的一些坑(最好不要用)

    然而,MongoDB通过优化锁处理机制,如操作原子性限制在单个document级别、短暂放弃锁以及快速内存操作,来缓解这个问题。尽管如此,长时间占用写锁的操作,如前台创建索引,仍然可能导致数据库完全阻塞。因此,建议...

    py-mongo-sync:MongoDB的基于Oplog的同步工具。 它用于将数据从一个副本集同步到另一个独立副本集强化群集

    py-mongo-sync 它可用于将数据从一个副本集同步到另一个MongoDB部署(独立,副本集或分片群集)。 它基于oplog,并提供实时数据同步。 支持 ... 3.6版增加了对MongoDB 3.6的支持,放弃了对CPython 3.3

    发布下mongodb 的最新版本下载地址(百度网盘)-附件资源

    发布下mongodb 的最新版本下载地址(百度网盘)-附件资源

Global site tag (gtag.js) - Google Analytics