mongodb介绍

MongoDB组成

mongodb-org-server: 其中包含了守护进程、关联配置和初始化脚本。
mongodb-org-mongos: 包含了mongoDB的守护进程。
mongodb-org-shell: 主要是和mongoDB交互的接口。
mongodb-org-tools: 包含了mongoDB的全部的工具包。

数据库简介(关系型和非关系型)

1.1.1 什么是数据?

数据(英语:data),是指未经过处理的原始记录。
  一般而言,数据缺乏组织及分类,无法明确的表达事物代表的意义,它可能是一堆的杂志、一大叠的报纸、数种的开会记录或是整本病人的病历纪录。数据描述事物的符号记录,是可定义为意义的实体,涉及事物的存在形式。是关于事件之一组离散且客观的事实描述,是构成讯息和知识的原始材料。

1.1.2 什么是数据库管理系统?

数据库管理系统(英语:database management system,缩写:DBMS) 是一种针对对象数据库,为管理数据库而设计的大型电脑软件管理系统。

具有代表性的数据管理系统有:Oracle、Microsoft SQL Server、Access、MySQL及PostgreSQL等。通常数据库管理师会使用数据库管理系统来创建数据库系统。

现代DBMS使用不同的数据库模型追踪实体、属性和关系。在个人电脑、大型计算机和主机上应用最广泛的数据库管理系统是关系型DBMS(relational DBMS)。在关系型数据模型中,用二维表格表示数据库中的数据。这些表格称为关系。

数据库管理系统主要分为俩大类:RDBMS、NOSQL

1.1.3 NoSQL简介

NoSQL是对不同于传统的关系数据库的数据库管理系统的统称。

两者存在许多显著的不同点,其中最重要的是NoSQL不使用SQL作为查询语言。其数据存储可以不需要固定的表格模式,也经常会避免使用SQL的JOIN操作,一般有水平可扩展性的特征。

NoSQL一词最早出现于1998年,是Carlo Strozzi开发的一个轻量、开源、不提供SQL功能的关系数据库。

基于2014年的收入,NoSQL市场领先企业是MarkLogic,MongoDB和Datastax。基于2015年的人气排名,最受欢迎的NoSQL数据库是MongoDB,Apache Cassandra和Redis.

NoSQL数据库四大家族

NoSQL中的四大家族主要是:列存储、键值、图像存储、文档存储

mongodb介绍_第1张图片
image.png
NoSQL的优势

高可扩展性、分布式计算、没有复杂的关系、低成本架构灵活、半结构化数据

NoSQL与RDBMS对比
mongodb介绍_第2张图片
image.png

mongodb

mongodb特性
mongodb介绍_第3张图片
image.png
缺点

*多表关联: 仅仅支持Left Outer Join
*SQL 语句支持: 查询为主,部分支持
*多表原子事务: 不支持
*多文档原子事务:不支持
*16MB 文档大小限制,不支持中文排序 ,服务端 Javascript 性能欠佳

与MySQL的结构对比
mongodb介绍_第4张图片
image.png
mongodb功能:

JSON 文档模型、动态的数据模式、二级索引强大、查询功能、
自动分片、水平扩展、自动复制、高可用、文本搜索、企业级安全、
聚合框架MapReduce、大文件存储GridFS

存储引擎对比
mongodb介绍_第5张图片
image.png
mongodb优化

Transparent Huge Pages (THP),通过使用更大的内存页面,可以减少具有大量内存的机器上的缓冲区(TLB)查找的开销。
但是,数据库工作负载通常对THP表现不佳,因为它们往往具有稀疏而不是连续的内存访问模式。您应该在Linux机器上禁用THP,以确保MongoDB的最佳性能。

if test -f /sys/kernel/mm/transparent_hugepage/enabled; then
  echo never > /sys/kernel/mm/transparent_hugepage/enabled
fi
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
EOF

你可能感兴趣的:(mongodb介绍)