毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
基于MongoDB的档案管理系统设计与实现 (3)
MongoDB支持备份和故障恢复。它不仅支持复制服务器与客户机服务器之间传递的数据,复制服务器与服务器之间传递的数据,还提供冗余、自动故障转移。
MongoDB通过自动分片,支持具有扩展性的云计算层次,可动态添加其他的机器。
完善的文档支持与驱动支持,开发者可以再多种环境语言下使用,加之MongoDB官方提供良好的技术支持,可以解决很多问题,所以MongoDB是很有前景的数据库技术。
一位资深工程师是这样描述对MongoDB数据库的感觉,“居然不自动回滚!不用它不行,速度实在太快了!”这就足够说明MongoDB在查询和写入性能方面的优越性,有用户报告称其与MySQL相比,对有索引的ID的查询速度不会慢,而在非索引字段的查询更是优胜[4][5][6][7]。
2.1.2 MongoDB的主要缺点及局限
2011年下半年,Hacker News上出现了一篇名为《Don’t Use MongoDB》的文章,这篇文章很快在业界传播开来,笔者以用户的名义,声称饱受MongoDB之苦,列举了数条MongoDB的“罪行”。10gen的CTO(首席技术官)迅速对此事件作出了反应,并且给出了相应的回应(其中有些问题是没有任何证据能够表明,或者说没有收到用户的反馈报告,理论上也是不太可能出现)。这一事件以一个戏剧性的结尾收场了:原来这篇文章只是该文作者的一个恶作剧,他声称只是想通过这个实验,以显示要想控制一个人的思文是多么的容易。
然而,所谓无风不起浪,这篇文章之所以显得格外真实,不正是抓住了许多用户心中的疑虑,而其中某几条“罪行”也是真真切切的。若是要想客观地对MongoDB的欠缺进行评价,结合在2012年举办的MongoDB 北京开发者聚会上Stone Gao先生发表的演讲《Challenges with MongoDB》(MongoDB的挑战)以及其他参考资料和个人经验简述如下:
首先是全局锁。不支持写锁,包括对集合和文档,毫无疑问,这很大程度上降低了系统的执行效率。10gen表示目前已经进行了优化,在写操作方面做了很大的改进。但是在集合锁出现以前,这个问题还是难以得到根本的解决,因此在必须频繁使用写锁的情况下,MongoDB并不适用。
其次,需要完善自动分片的功能。在某些条件下,分片中的数据并不平衡,甚至可能需要用户关掉自动平衡功能,自行制定平衡策略。
再次,由于是以Key-value(关健值)的形式储存文档,那么在key域较大时,空间的浪费很是惊人。这促使开发人员在对存储空间较为敏感的情况下,必须缩小表示Key值的字段,还需要在开发文档中进行说明[8][9]。
最后,10gen被指责对用户反馈不够敏感,一些固有的技术或性能问题(如上文提到的全局锁、自动分片等)即使是在用户反馈后,也并没有得到及时解决[9]。
2.1.3 MongoDB支持的数据类型
在基于MongoDB的档案管理系统中,数据的存储是极其重要的一部分,本系统选择使用非关系型数据库MongoDB进行存储系统数据。MongoDB对于数据存储具有强大的安全性、稳定性和可靠性。在对数据库进行架构设计时,第一步就是把握好整体项目的各类用户需求,还要包含未来可能添加的需求数据。
MongoDB在使用前,相应的数据库并不需要事先创建好,表的结构也不要进行设计。
在MongoDB中,取代“表”这一个概念的是“集合”(Collction)。当然,没有表也就没有数据记录的概念,有的是文档,我们可以理解为,MongoDB中的”文档“就是“对象”[10]。
共4页:
上一页
1
2
3
4
下一页
上一篇:
STC89C52单片机红外密码锁设计+电路图
下一篇:
江苏电网间歇性特性分析及其接入性研究
基于Kinect手势识别的遥操...
冷库GPRS的无线数据采集系统设计
基于51单片机自动门智能控制系统设计
STC89C52单片机盲人用时钟的设计+电路图+程序
PLC物料自动分拣系统的设计+源程序
单相电压型逆变电路的谐...
粉料称重装置的单片机控...
浅析施工企业保理融资成...
提高小學语文課堂朗读教...
遥感土地用变化监测国内外研究现状
高效课堂教师问卷调查表
从企业eHR建设谈管理信息...
PCI+PID算法直流力矩电机速...
MNL模型历史城区居民活动...
小型通用机器人控制系统设计任务书
大规模MIMO系统的发展研究现状
《水浒传》中血腥暴力研...