面向文档的NoSQL数据库MongoDB(上)

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 面向文档的NoSQL数据库MongoDB(上)

NoSQL优势


全称:Not Only SQL 不仅仅是数据库

  • 海量的扩展能力
  • 读写高性能
  • 与关系型数据库(RDBMS)相辅相成


NoSQL产品


  • 键值存储型(Key-Value) Redis/Codis
  • 列存储型 HBase
Hbase数据分析用的比较多
  • 图形(Graph)数据库
Neo4j知识图片用的较多
  • 文档型 MongoDB


MongoDB概念


举例:描述人
  • 关系型数据库


image.png


MongoDB特性


  • 可扩展(scalable)
  • 高性能(high-performance)
  • 开源(open source) NoSQL database
  • C++语言编写
  • Document-Oriented Storage
  • Full Index Support
  • Replication & High Availability
  • Auto-Sharding
  • Rich Querying
  • Updates
  • Map/Reduce
  • GridFS 存储二进制文件


MongoDB稳定性


如何解决数据丢失

  • 恢复日志(journal)

image.png

image.png


MongoDB高可用


核心业务SLASLA 99.99%以上怎么做到的?


MongoDB 副本集(replica set)

  • 数据多分冗余
  • 跨交换机部署
  • 更快的选举方式(参考raft协议)

架构

主从复制+高可用方案


image.png


分片

架构

image.png

1、对业务方来说没有分库分表的概念
不管数据量多大 对业务方来说都是单库单表
对于关系型数据库来说比如Myql有分库分表的概念
比如1T数据 MongoDB分2个片 每一个片存储500G数据
2、Router可以有很多台
3、分片信息存储在config server中
4、一个分片就是一个副本集(replica set)
5、Router先访问config server获取分片信息,Router再访问分片集(replica set)

表的分片(MongoDB Collection)

image.png



分片规则

Sharding Range-based

基于范围分片 用的较多

Mysql B+ Tree本质也是Range-based


image.png


Sharding Hash-based

取模分片

Java HashMap是Hash-based
查询速度比较快
不支持范围查询
对于数据库来说 不支持范围查询肯定不合适

image.png


1、3个配置节点、3个路由节点(mongos)都是stateless(无状态的即数据都一样)
2、每个分片就是一个replica set(一主两从) 一个分片3台机器
3、cnofig和mongos也可以混合部署在一个sharding上


应用场景


image.png

1、位置即GPS或LBS
2、中小公司用它没有问题 量大肯定不行
3、非交易相关的都可以用
a、事务支持的比较弱
b、mongodb 4.0已经支持事务 并且支持跨行事务


可扩展存储


image.png

1、最早的操作引擎是MMAP 支持表级锁 也是操作系统自带的一种机制
缺点就是内存利用率不高
2、WireTigger支持行级锁
相关实践学习
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
相关文章
|
4天前
|
存储 NoSQL MongoDB
数据库数据恢复—MongoDB数据库迁移过程中丢失文件的数据恢复案例
某单位一台MongoDB数据库由于业务需求进行了数据迁移,数据库迁移后提示:“Windows无法启动MongoDB服务(位于 本地计算机 上)错误1067:进程意外终止。”
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生就业服务平台设计与实现(系统源码+文档+数据库+部署等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
63 6
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue的班级综合测评管理系统设计与实现(系统源码+文档+数据库+部署等)
✌免费选题、功能需求设计、任务书、开题报告、中期检查、程序功能实现、论文辅导、论文降重、答辩PPT辅导、会议视频一对一讲解代码等✌
40 4
|
1月前
|
存储 监控 NoSQL
【赵渝强老师】MongoDB文档级别的并发控制
MongoDB使用WiredTiger存储引擎在文档级别进行并发控制,允许多个写操作同时修改不同文档,但对同一文档的修改需序列化执行。引擎采用乐观锁和意向锁机制处理冲突。通过视频讲解、插入大量文档示例及使用`mongotop`和`db.serverStatus()`命令,演示了如何监控MongoDB的锁信息和读写统计,展示了数据库和集合级别的写锁情况。
89 29
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的大学生体质测试管理系统设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
37 2
|
2月前
|
存储 JSON NoSQL
学习 MongoDB:打开强大的数据库技术大门
MongoDB 是一个基于分布式文件存储的文档数据库,由 C++ 编写,旨在为 Web 应用提供可扩展的高性能数据存储解决方案。它与 MySQL 类似,但使用文档结构而非表结构。核心概念包括:数据库(Database)、集合(Collection)、文档(Document)和字段(Field)。MongoDB 使用 BSON 格式存储数据,支持多种数据类型,如字符串、整数、数组等,并通过二进制编码实现高效存储和传输。BSON 文档结构类似 JSON,但更紧凑,适合网络传输。
82 15
|
25天前
|
JavaScript NoSQL Java
基于SpringBoot+Vue实现的冬奥会科普平台设计与实现(系统源码+文档+数据库+部署)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
42 0
|
24天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
11天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
86 42
|
2天前
|
关系型数据库 MySQL 网络安全
如何排查和解决PHP连接数据库MYSQL失败写锁的问题
通过本文的介绍,您可以系统地了解如何排查和解决PHP连接MySQL数据库失败及写锁问题。通过检查配置、确保服务启动、调整防火墙设置和用户权限,以及识别和解决长时间运行的事务和死锁问题,可以有效地保障应用的稳定运行。
40 25

热门文章

最新文章