非关系型数据库-MongoDB技术(一)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB MySQL 版,通用型 2核4GB 50GB
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
简介: 非关系型数据库-MongoDB技术(一)

一、为什么我要写MongoDB呢?

a、公司用的原因:我就不说公司为什么我公司用MongoDB,而不选择关系型数据库的MySQL了。

b、MongoDB是一款强大,灵活,且易于扩展的通用性数据库,功能很强大

c、既然公司用了,就想要把它给弄透彻。

所以我想把这个技术把它好好学学,哪里写的不好,给指导出来,一起努力。

二、关于MongoDB的简介与介绍

a、易于使用

1⃣️、MongoDB是一个面向文档的数据库,而不是关系型的数据库,这样的设计为了获得更好的扩展性。通过文档中嵌入文档和数组,可以使用一条记录来表现为复杂的层次关系。

2⃣️、文档中的键(key)和值(value)不再是固定的类型和大小,所以需要添加和删除字段变得更加容易了。所以可以快速开发和迭代。

b、易于扩展

背景:

1⃣️、因为现在是互联网的时代,数据量在以不可思议的速度在增长,过去非常罕见的T级数据,现在已经是司空见惯了。

2⃣️、纵向扩展和横向扩展

纵向扩展:使用计算能力更强的机器,优点是更省力的做法,缺点就是大型机一般非常昂贵,而且当数据量达到机器的极限时,是花多少钱都搞定不了的。

横向扩展:通过分区的思想将数据分散到更多的机器上,要增加存储性能或者提高性能的话,只需要买一台普通的服务器并把它添加到集群中就可以了,横向扩展的好处是既便宜又易于扩展。缺点:管理很多的机器更加要困难的多。

而在MongoDB中的设计采用的是横向扩展的方案,面向文档的数据模型使它能很容易地在多台服务器之间进行数据分割。

c、MongoDB的优点

1⃣️、MongoDB能自动处理跨集群的数据和负载,自动去重新分配文档,以及能够将用户的请求路由到正确的机器上。

2⃣️、开发者能够集中精力编写应用程序就可以了。而不需要去考虑如何扩展的问题。

3⃣️、如果需要存储更大的容量的时候,只需要向集群中添加新的服务器就ok了。MongoDB会自动把数据推送到新的服务器上。

d、丰富的功能

MongoDB是一款通用型的数据库,不但可以能够创建,读取,更新和删除数据,而且有以下功能:

1⃣️、索引

MongoDB是支持二级索引的,可以实现多种快速查询,可以提供唯一索引,复合索引,地理空间索引,全文索引。

2⃣️、聚合

可以通过简单的片段创建复杂的索引,通过数据库自动优化。

3⃣️、可以存储过期的数据

类似会话一样,支持固定大小的集合,用于保存近期数据,如记录日志。

4⃣️、文件存储

MongoDB可以存储大文件和文件的元数据。

缺点:MongoDB并不具备关系型数据库中普遍的功能,如,连接(join)和复杂的多行事物,而这样的设计为了提高扩展性,因为在分布式系统中这两个功能也很难以高效的实现。

e、卓越的性能

MongoDB的主要目标是提供卓越的性能。

1⃣️、 能够对文档进行动态填充,预分配数据文件可以利用额外的空间来换取稳定的性能。

2⃣️、尽可能把多的内存用作缓存。

3⃣️、为每次查询尽可能自动选择正确的索引。

4⃣️、它并不追求具备关系型数据库的所有功能,只要有可能,数据库服务器就会将处理和逻辑交给程序代码来实现,这种设计的方式是MongoDB能够实现高性能的原因之一。

相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
19天前
|
数据库 索引
深入探索数据库索引技术:回表与索引下推解析
【10月更文挑战第15天】在数据库查询优化的领域中,回表和索引下推是两个核心概念,它们对于提高查询性能至关重要。本文将详细解释这两个术语,并探讨它们在数据库操作中的作用和影响。
42 3
|
19天前
|
数据库 索引
深入理解数据库索引技术:回表与索引下推详解
【10月更文挑战第23天】 在数据库查询性能优化中,索引的使用是提升查询效率的关键。然而,并非所有的索引都能直接加速查询。本文将深入探讨两个重要的数据库索引技术:回表和索引下推,解释它们的概念、工作原理以及对性能的影响。
36 3
|
18天前
|
负载均衡 网络协议 数据库
选择适合自己的数据库多实例负载均衡技术
【10月更文挑战第23天】选择适合自己的数据库多实例负载均衡技术需要全面考虑多种因素。通过深入的分析和评估,结合自身的实际情况,能够做出明智的决策,为数据库系统的高效运行提供有力保障。
103 61
|
19天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第21天】本文探讨了MongoDB Atlas的核心特性、实践应用及对云原生数据库未来的思考。MongoDB Atlas作为MongoDB的云原生版本,提供全球分布式、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了云原生数据库的未来趋势,如架构灵活性、智能化运维和混合云支持,并分享了实施MongoDB Atlas的最佳实践。
|
16天前
|
SQL Java 数据库连接
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,有效减少连接开销,提升访问效率。本文介绍了连接池的工作原理、优势及实现方法,并提供了HikariCP的示例代码。
30 3
|
20天前
|
NoSQL Cloud Native atlas
探索云原生数据库:MongoDB Atlas 的实践与思考
【10月更文挑战第20天】本文探讨了MongoDB Atlas的核心特性、实践应用及对未来云原生数据库的思考。MongoDB Atlas作为云原生数据库服务,具备全球分布、完全托管、弹性伸缩和安全合规等优势,支持快速部署、数据全球化、自动化运维和灵活定价。文章还讨论了实施MongoDB Atlas的最佳实践和职业心得,展望了云原生数据库的发展趋势。
|
18天前
|
缓存 负载均衡 监控
数据库多实例的负载均衡技术深入
【10月更文挑战第23天】数据库多实例负载均衡技术是确保数据库系统高效运行的重要手段。通过合理选择负载均衡策略、实时监控实例状态、不断优化调整,能够实现资源的最优分配和系统性能的提升。在实际应用中,需要根据具体情况灵活运用各种负载均衡技术,并结合其他相关技术,以满足不断变化的业务需求。
|
18天前
|
Java 数据库连接 数据库
优化之路:Java连接池技术助力数据库性能飞跃
在Java应用开发中,数据库操作常成为性能瓶颈。频繁的数据库连接建立和断开增加了系统开销,导致性能下降。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接,显著减少连接开销,提升系统性能。文章详细介绍了连接池的优势、选择标准、使用方法及优化策略,帮助开发者实现数据库性能的飞跃。
25 4
|
16天前
|
Java 数据库连接 数据库
深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能
在Java应用开发中,数据库操作常成为性能瓶颈。本文通过问题解答形式,深入探讨Java连接池技术如何通过复用数据库连接、减少连接建立和断开的开销,从而显著提升系统性能。文章介绍了连接池的优势、选择和使用方法,以及优化配置的技巧。
16 1
|
18天前
|
SQL Java 数据库连接
打破瓶颈:利用Java连接池技术提升数据库访问效率
在Java应用中,数据库访问常成为性能瓶颈。连接池技术通过预建立并复用数据库连接,避免了频繁的连接建立和断开,显著提升了数据库访问效率。常见的连接池库包括HikariCP、C3P0和DBCP,它们提供了丰富的配置选项和强大的功能,帮助优化应用性能。
37 2