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

2019-01-29  本文已影响0人  未赋值

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

基础篇

认识MongoDB

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

NoSQL简介

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

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

NoSQL族谱

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;">NoSQL族谱</figcaption>

NoSQL产生背景

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

NoSQL的种类

image

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>

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

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

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

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

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

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

比如:Redis

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

比如:Cassandra

NoSQL的特点

认识MongoDB

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

MongoDB特点及功能

{“welcome”:“beijing”}{“age":25}

这两条记录可以在同一个集合里存在。

存储的是键值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档。这个数据格式称为BSON(Binary Serialized Document Notation)

快速入门

体系结构

一个运行着MongoDB的数据库可以看做是一个MongoDB Server,该Server由实例和数据库组成。

一般情况下,一个MongoDB Server机器上包含一个实例和多个与之对应的数据库。

特殊情况下,允许一个Server机器上有多个实例和多个数据库。

数据逻辑结构

MongoDB与关系型数据库逻辑结构的对比

image

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>

数据存储结构

日志系统

元数据存储

元数据是预留空间

数据类型

image

<figcaption style="line-height: inherit; margin: 0px; padding: 0px; margin-top: 10px; text-align: center; color: rgb(153, 153, 153); font-size: 0.7em;"></figcaption>

高级篇

高级查询

查询操作符

高级更新

高级特性

管理篇

管理工具

性能篇

架构篇

上一篇 下一篇

猜你喜欢

热点阅读