MONGODB数据库中自动分片技术应用研究.doc

MONGODB数据库中自动分片技术应用研究.doc

ID:59289728

大小:69.50 KB

页数:2页

时间:2020-09-06

MONGODB数据库中自动分片技术应用研究.doc_第1页
MONGODB数据库中自动分片技术应用研究.doc_第2页
资源描述:

《MONGODB数据库中自动分片技术应用研究.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、摘要:mongodb为了提高处理大数据量时的性能,提供了自动分片的技术。mongodb的分片是集合级别的,根据基于分区的片键可以将数据集合均匀的分布在各片上。文中在研究mongodb特点的基础上,着重分析自动分片技术的应用。对比普通和分片情况下的mongodb性能,提出使用基于分区的mongodb自动分片技术可以提高数据量较大时的性能,使mongodb更稳定。对比片索引和普通索引的性能,提出对于使用非常频繁的查询或写操作,应使用基于片键的索引,可以大幅度提高mongodb的性能。  关键词:mongodb自动分片性能测试非关系型数据库  中图分类号:tp311

2、.13文献识别码:a文章编号:1007-9416(2016)06-0000-00  1mongodb介绍  mongodb是一种强大、灵活、可扩展的数据存储方式。它扩展了关系型数据库的众多有用功能,如辅助索引、范围查询和排序。mongodb的功能非常丰富,比如内置的对mapreduce式聚合的支持,以及对地理空间索引的支持。mongodb既有优点也有缺点,但是总体来说还是相当不错的,它是nosql数据库中最接近sql数据的一种基于文档的数据库产品,主要为网页应用提供可扩展的高性能数据存储解决方案,并且已经应用在一些世界顶级的互联网公司的产品中。  2mongo

3、db的自动分片技术介绍  使用自动分片技术的mongodb集群包括以下三个组件:分片服务器、路由服务器配置服务器。  分片服务器负责存储数据。为了提供高可用性和数据一致性,在生产环境中,分片服务器集群中,每一个片都是一个副本集。如果是开发环境或者测试环境中,可以不采用副本集机制。本文主要研究mongodb的自动分片技术,为了更好的观察mongodb的自动分片技术本文中的每一个片都是一个单独的mongod服务,并没有采用副本集技术。  路由服务器,也可称为查询路由服务器,它是mongos实例程序,接收客户端的请求,把请求直接分发给适当的一个或几个分片服务器,收集

4、分片服务器的操作结果汇总成最终结果,然后将最终结果返回给客户端。一个mongodb集群可以有多个路由服务器。  配置服务器存储mongodb集群的元数据。包括数据的分片策略。路由服务器根据这些元数据把请求分发到特殊的分片服务器。并且在3.2版本以后,配置服务器可以应用副本集机制。  3性能测试  此次测试共涉及5台服务器:3台mongodb服务器。机器配置:cpu为intel(r)core(tm)i7-5500ucpu@2.40ghz、内存为16g、硬盘1t、操作系统为linux。分别在3台机器运行一个mongod实例和一个mongos进程。在scala程序设

5、计语言下,使用mongodb官方提供的casbah工具包编写程序对mongodb进行操作。  (1)对三个数据集分别插入1亿条数据,要求数据的l1字段取值均匀的分布在长整型取值空间上;  在插入的数据每条为1kb的情况下,普通插入的方式在数据量小于1000万条时,三个数据集性能都是是比较高效的,但之后每秒插入数据量骤降。原因是mongodb的普通插入只是把数据写入内存就结束了,所以在内存有空闲时,普通插入速度是非常高效的,但是随着写入数据量的增加,内存逐渐被占用,此事再写入数据需要在磁盘和内存间进行大量的数据交换,因此性能下降较快。  虽然随着写入数据量的增加

6、,写入性能明显下降,但是分片数据集下降率比未分片的数据集低。在数据量大于2000万后的写入数据性能,分片数据集比未分片数据集要好。  比较collection1和collection2发现,在数据量大于4000万后,collection1的写入性能更好,原因是在数据量达到4000万时,collection2数据集第一个块写满,数据均衡的操作,数据在不同的shard间移动,导入写入速度下降。而collection1进行了分块操作,在数据写入之前,已经将数据均匀的分布在了三个shard上,所以collection1随着数据量的上升写入性能下降较为缓慢,写入操作的压

7、力被均匀的分布在了三个片上。  (2)分别根据普通索引、分片索引查询1000条数据测试结果如图1所示,对未分片的数据集进行查询3,查询性能非常不稳定,但是对分片的collection1进行的1和2查询相对比较稳定。查询1使用的是分片索引,查询2使用的是普通索引,观察可以发现,使用分片索引的查询效率高于普通索引。原因是根据分片索引,mongos可以把查询操作有选择的分发到相关的一部分mongod服务器上,而根据普通索引的查询,mongos必须把查询操作分发给每一个mongod服务器。  4结语  经过测试分析得知,使用mongodb自动分片技术可以提高数据量较大

8、时的性能,并且时mongodb更稳定。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。