Mongodb入门系列(1)——NoSQL及MongoDB的特性

NoSQL,是Not Only SQL的缩写,可不是no SQL哦。

NoSQL目前被国内外的很多公司在应用:

新浪微博  Redis
Google  BIgtable
Amazon  SimpleDB
淘宝数据平台 Tair
视觉中国网站 MongoDB
youku运营数据中心 MongoDB
飞信空间 HandlerSocket
豆瓣 BeansDB

NoSQL数据库关注的是对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,NoSQL数据库在结构和数据模型方面做“减法”,而在扩展和并发方面做了加法。

NoSQl的优点总结下来如下:

简单的扩展——谁用谁知道

快速的读写——(个人觉得不一定)

低廉的成本——大部分都是开源产品

灵活的数据结构——谁用谁知道

但是NoSQL仍然都或多或少存在很多缺点:

不提供对SQL的支持

支持的特性不够丰富

现有的产品不成熟,相对的

现在比较成熟的像MongoDB,Redis等。(Redis主要用来替换Memchached的缓存服务)

MongoDB是非关系型数据库,但是操作习惯介于关系型和非关系型之间。语法有一点类似与JS面向对象的查询语言,是一个面向集和的、模式自由的文档型数据库。(数据格式都是Key-value,像JS中的Json)

一个这样的“Json”在MongoDB里称为一个文档。所以MongoDB是一个文档型数据库。

MongoDB有以下几个特性:

面向集合(Collection-Oriented)

关系型和非关系型的数据模型从大到小的概念对应:

NoSQL数据库-----集合----文档(对应于Json对象)-----------Key-Value

RDB-------------------表-------记录-----------------------------------------字段

模式自由(schema-free):集合里面没有列和行的概念

型下面两个记录可以存在同一个集合里面:

{"name":"HappyBKs"}

{"age":1}

文档型(documents):

文档型指的是存储的数据是key-value对的集合,key是字符串,value可以是数据型集合里面的任意类型,包括数组和文档,每个文档相当于关系型数据库中的一条记录。

支持动态查询

支持完全索引,包括内部对象(唯一索引和普通索引同样支持)

支持高效的二进制的数据存储,包括大型对象(如视频、图片)

自动处理碎片

文件存储格式是BSON(一种JSON的扩展)。注意:是在存储的时候会将Json转为BSON

使用对象:

持久化的缓存层(如Redis)

高效的实时性

用于对象及JSON数据的存储

高伸缩的场景

大尺寸,低价值的数据存储

不适合场景:

要求高度事务性的系统。(因为不像关系型数据库那样支持ACID)

传统的商业只能应用

复杂多表查询

时间: 2024-10-09 13:01:31

Mongodb入门系列(1)——NoSQL及MongoDB的特性的相关文章

Mongodb入门系列(4)——Mongodb体系结构与客户端基本操作及注意细节

说到Mongodb的体系结构,免不了与关系型数据库做个对比.这里以MySQL为例,我们进行一些比较: 从逻辑结构上对比: MySQL层次概念 MongoDB层次概念 数据库(database) 数据库(database) 表(table) 集合(collection) 记录(row) 文档(document) 在MongoDB中没有行.列.关系的概念,集合中的文档相当于一条记录,这体现了模式自由的特点. 从数据存储结构上对比: MySQL的每个数据库存放在一个与数据库同名的文件夹中,MySQL如

MongoDB入门系列(一):基础概念和安装

概述 MongoDB是目前非常流行的一种非关系型数据库,作为入门系列的第一篇本篇文章主要介绍Mongdb的基础概念知识包括命名规则.数据类型.功能以及安装等. 环境: OS:Windows Version:3.4 一.安装 1.下载解压 在官网下载对应操作系统版本的安装包,然后解压:我这里使用Windows环境安装测试. 2.在D盘创建Mongodb\data\db目录 3.初始化数据 最好先将bin目录加入到环境变量,否则要到命令目录下执行. mongod --dbpath D:\mongod

Mongodb入门系列(2)——在linux下安装、启动、关闭MongoDB以及注意事项(详细)

从官网下载MongoDB的压缩包.http://www.mongodb.org/downloads 将mongodb-linux-x86_64-2.6.8.tgz解压 [[email protected] Downloads]$ tar zxvf mongodb-linux-x86_64-2.6.8.tgz  mongodb-linux-x86_64-2.6.8/README mongodb-linux-x86_64-2.6.8/THIRD-PARTY-NOTICES mongodb-linux

MongoDB进阶系列(12)——MongoDB 固定集合

Capped Collection 固定集合 简单介绍 capped collections 是性能出色的有着固定大小的集合,以LRU(Least Recently Used最近最少使用)规则和插入顺序进行age-out(老化移出)处理,自动维护集合中对象的插入顺序,在创建时 要预先指定大小.如果空间用完了,新添加的对象将会取代集合中最旧的元素. 永远保持最新的数据. 功能特点: 可以插入及更新,但更新不能超出collection的大小,否则更新是白.不允许删除,但是可以调用drop()删除集合

MongoDb 入门教程

MongoDb 入门教程 目录 MongoDb的基本数据结构 安装MongoDb服务器 连接MongoDb服务器 MongoDb创建数据库 MongoDb创建表 MongoDb插入数据 MongoDb查询数据 范围操作符 AND操作符 OR操作符 排序 聚合 MongoDb更新数据 MongoDb删除数据 常用的DDL命令 MongoDb图形化工具 总结 参考资料 MongoDb 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的. 它是可扩展的高性能数

入门系列之在Ubuntu 14.04上备份,还原和迁移MongoDB数据库

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由信姜缘 发表于云+社区专栏 MongoDB是最受欢迎的NoSQL数据库引擎之一.它以可扩展,强大,可靠和易于使用而闻名.在本文中,我们将向您展示如何备份,还原和迁移MongoDB数据库. 导入和导出数据库意味着以人类可读的格式处理数据,与其他软件产品兼容.相反,备份和还原操作创建或使用特定于MongoDB的二进制数据,这不仅保留了数据的一致性和完整性,还保留了其特定的MongoDB属性.因此,对于迁移,只要源系统和目标系统兼容,通

MongoDB索引(一) --- 入门篇:学习使用MongoDB数据库索引

这个系列文章会分为两篇来写: 第一篇:入门篇,学习使用MongoDB数据库索引 第二篇:进阶篇,研究数据库索引原理--B/B+树的基本原理 1. 准备工作 在学习使用MongoDB数据库索引之前,有一些准备工作要做,之后的探索都是基于这些准备工作. 首先需要建立一个数据库和一些集合,这里我就选用一个国内手机号归属地的库,大约32W条记录,数据量不大,不过做一些基本的分析是够了. 首先我们建立一个数据库,叫做db_phone,然后导入测试数据.测试数据就是一些手机号归属地的信息.单个文档长这个样子

NoSQL之mongodb

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL". 指的是非关系型的数据库,是对不同于传统的关系型数据库的数据库管理系统的统称. NoSQL用于超大规模数据的存储.这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展. 回顾一下关系型数据库遵循ACID规则: 事务transaction,和现实世界中的交易很类似,它有如下四个特性: 1.A (Atomicity) 原子性 原子性很容易理解,也就是说事务里的所有操作要么全部做完,要么都不做,事务成

MongoDB入门必读(概念与实战并重)

MongoDB入门必读(概念与实战并重) 一.概述 MongoDB是一个基于分布式文件存储的数据库开源项目.由C++语言编写.旨在为WEB应用提供可护展的高性能数据存储解决方案. MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bjson格式,因此可以存储比较复杂的数据类型.Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝