论文部分内容阅读
随着云计算,互联网等技术的飞速发展,越来越多不同内容和形式的数据涌现出来,半结构化数据和非结构化数据的使用使当前系统应用越来越丰富多彩。面对海量数据的存储,原始的关系型数据库已经显得力不从心。大数据的出现,以及云计算的盛行让NoSQL这种非结构化数据库越来越被人重视。NoSQL数据库以其丰富多彩的数据查询技术被更多人关注。NoSQL系统中提供了针对不同数据结构的存储方案,而且还具有高可用性和高扩展性的特点,对于解决庞大数据量和高并发等问题提供了非常有效的解决方法。MongoDB数据库作为NoSQL中的一员,以其独特的优势而受人青睐。本文在分析NoSQL数据库及相关技术的基础上,着重讨论MongoDB数据库的查询优化技术。MongoDB数据库是一个文档型数据库,本文通过修改数据库文档的结构来有效地提高数据的查询速度。分页查询是数据库查询方法中最具代表性的查询方法,但是传统的分页方法skip-limit在处理海量数据时查询效率会受到严重影响,本文在skip-limit方法的基础上,提出了一种新的分页方法where-limit,它能够很好地处理海量数据的查询。本文最后研究了MongoDB数据库的分片优化技术,针对MongoDB系统中Auto-Sharding(自动分片)带来的数据分配不均衡,CPU占有率过高,内存泄漏等现象,提出了一种哈希算法来进行优化,以解决数据分配不均衡的问题,从而有效地提升数据的查询效率。