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

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
云原生数据库 PolarDB PostgreSQL 版,标准版 2核4GB 50GB
云原生数据库 PolarDB MySQL 版,通用型 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
相关文章
|
2天前
|
存储 NoSQL 关系型数据库
非关系型数据库-MongoDB技术(二)
非关系型数据库-MongoDB技术(二)
|
14天前
|
存储 负载均衡 数据库
探索后端技术:从服务器架构到数据库优化的实践之旅
在当今数字化时代,后端技术作为支撑网站和应用运行的核心,扮演着至关重要的角色。本文将带领读者深入后端技术的两大关键领域——服务器架构和数据库优化,通过实践案例揭示其背后的原理与技巧。无论是对于初学者还是经验丰富的开发者,这篇文章都将提供宝贵的见解和实用的知识,帮助读者在后端开发的道路上更进一步。
|
10天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
12天前
|
存储 SQL 关系型数据库
使用MySQL Workbench进行数据库备份
【9月更文挑战第13天】以下是使用MySQL Workbench进行数据库备份的步骤:启动软件后,通过“Database”菜单中的“管理连接”选项配置并选择要备份的数据库。随后,选择“数据导出”,确认导出的数据库及格式(推荐SQL格式),设置存储路径,点击“开始导出”。完成后,可在指定路径找到备份文件,建议定期备份并存储于安全位置。
127 11
|
1月前
|
SQL 关系型数据库 MySQL
【揭秘】MySQL binlog日志与GTID:如何让数据库备份恢复变得轻松简单?
【8月更文挑战第22天】MySQL的binlog日志记录数据变更,用于恢复、复制和点恢复;GTID为每笔事务分配唯一ID,简化复制和恢复流程。开启binlog和GTID后,可通过`mysqldump`进行逻辑备份,包含binlog位置信息,或用`xtrabackup`做物理备份。恢复时,使用`mysql`命令执行备份文件,或通过`innobackupex`恢复物理备份。GTID模式下的主从复制配置更简便。
156 2
|
1月前
|
弹性计算 关系型数据库 数据库
手把手带你从自建 MySQL 迁移到云数据库,一步就能脱胎换骨
阿里云瑶池数据库来开课啦!自建数据库迁移至云数据库 RDS原来只要一步操作就能搞定!点击阅读原文完成实验就可获得一本日历哦~
|
1月前
|
关系型数据库 MySQL 数据库
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
RDS MySQL灾备服务协同解决方案构建问题之数据库备份数据的云上云下迁移如何解决
|
7天前
|
存储 SQL 关系型数据库
MySQL的安装&数据库的简单操作
本文介绍了数据库的基本概念及MySQL的安装配置。首先解释了数据库、数据库管理系统和SQL的概念,接着详细描述了MySQL的安装步骤及其全局配置文件my.ini的调整方法。文章还介绍了如何启动MySQL服务,包括配置环境变量和使用命令行的方法。最后,详细说明了数据库的各种操作,如创建、选择和删除数据库的SQL语句,并提供了实际操作示例。
46 13
MySQL的安装&数据库的简单操作
|
13天前
|
存储 SQL 关系型数据库
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
MySQL如何进行分库分表、数据迁移?从相关概念、使用场景、拆分方式、分表字段选择、数据一致性校验等角度阐述MySQL数据库的分库分表方案。
一篇文章搞懂MySQL的分库分表,从拆分场景、目标评估、拆分方案、不停机迁移、一致性补偿等方面详细阐述MySQL数据库的分库分表方案
|
2天前
|
SQL 关系型数据库 MySQL
创建包含MySQL和SQLServer数据库所有字段类型的表的方法
创建一个既包含MySQL又包含SQL Server所有字段类型的表是一个复杂的任务,需要仔细地比较和转换数据类型。通过上述方法,可以在两个数据库系统之间建立起相互兼容的数据结构,为数据迁移和同步提供便利。这一过程不仅要考虑数据类型的直接对应,还要注意特定数据类型在不同系统中的表现差异,确保数据的一致性和完整性。
16 4