《MongoDB管理与开发精要》读书摘记

2020-05-22 00:00:00 数据库 分布式 是一个 关系 读写

基础篇

认识MongoDB

MongoDB是一个高性能、开源、无模式的文档型数据库。使用c++开发。

NoSQL简介

NoSQL(Not Only SQL,非关系型数据库)的主要特点是非关系型的、分布式的、开源的、水平扩展的。

NoSQL的类型有Key-Value存储、文档型、列存储、图型数据库、XML数据库等。

NoSQL产生背景

关系型数据库在越来越多的应用场景下不那么合适了。

  • 对数据库并发读写的需求
  • 对海量数据的高效率存储和访问的需求
  • 对数据库的高扩展性和高可用性的需求
  • 很多web系统对数据库事务一致性的需求很低,数据库事务管理不仅无用武之地,还成了数据库的高负载下的负担。
  • 很多应用的数据库的写实时性和读实时性的需求并不是特别高,关系型数据库的实时读写无用武之地。


NoSQL的种类

面向文档的非关系型数据库主要解决的问题

在保证海量存储的同时,提供良好的查询性能。MongoDB主要解决的就是海量数据的访问效率问题。根据官方文档记载,当数据量达到50GB以上时,MongoDB的数据库访问速度是MySQL的10倍以上。

MongoDB不是为了解决高性能的并发读写而出现的,它的并发读写效率并不出色。

MongoDB自带了一个出色的分布式文件系统GridFS,可以支持海量的数据存储。

MongoDB有一个Ruby的项目MongoMapper,是模仿Merb的DataMapper编写的MongoDB接口,使用起来很简单,但是功能很强大。

满足高读写性能的Key-Value数据库

比如:Redis

满足高可扩展性和可用性的面向分布式计算的数据库

比如:Cassandra

NoSQL的特点

  • 运行在便宜的服务器集群上。集群扩充方便又廉价。
  • 击碎了性能瓶颈,执行速度特别快。
  • 没有过多的复杂操作。

认识MongoDB

MongoDB是一个介于关系型数据库和非关系型数据之间的产品,是非关系数据库中功能丰富、像关系型数据库的。它支持的数据结构非常松散,是类似JSON和BSON格式,可以存储比较复杂的数据类型。

MongoDB特点及功能

  • 面向集合存储(collection-oriented)
  • 模式自由(Schema-Free)
{“welcome”:“beijing”}
{“age":25}

相关文章