本文隶属于专题系列: 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)

传统的商业只能应用

复杂多表查询

你可能感兴趣的内容
0条评论

dexcoder

这家伙太懒了 <( ̄ ﹌  ̄)>
Owner