非关系型数据库

NoSQL

非关系型数据库也被称为 NoSQL 数据库,NoSQL 的本意是 “Not Only SQL”,指的是非关系型数据库,而不是 “NO SQL” 的意思。

NoSQL 的产生并不是要彻底否定 关系型数据库,而是作为传统数据库的一个有效补充。NoSQL 数据库在特定的场景下可以发挥难以想象的高效率和高性能。

NoSQL 是非关系型 数据库 的广义定义,它打破了长久以来关系型数据库与 ACID 理论大一统的局面。

NoSQL 数据存储不需要固定的表结构,通常也不存在连续操作。在大数据存取上具备关系型数据库无法比拟的性能优势。该术语(NoSQL)在 2009 年初得到了广泛认同。

非关系型数据库的诞生

随着 web2.0 网站的兴起,传统的关系型数据库在应付 web2.0 网站,特别是对于规模日益扩大的海量数据,超大规模和高并发的微博、微信、SNS 类型的 web2.0 纯动态网站已经显得力不从心,暴露了很多难以克服的问题。

例如:传统的关系型数据库 IO 瓶颈、性能瓶颈都难以有效突破,于是开始出现了大批针对特定场景,以高性能和使用便利为目的功能特异化的数据库产品。

NoSQL(非关系型)类的数据库就是这样的情景中诞生并得到了非常迅速的发展。

什么是非关系型数据库

非关系型数据库存储是不需要固定的表结构,通常也不存在连续操作。

NOSQL 数据库没有标准的查询语言(SQL),通常使用 REST 式的数据接口或者查询 API。

非关系型数据库优点

读写性能:

  • NoSQL数据库无需经过 SQL 层的解析,读写性能很高。
  • NoSQL 数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中。非关系型数据库比关系型数据库查询速度要快。

存储格式:

  • NoSQL 数据库的存储格式是键值对的形式,文档形式,图片形式等,所以可以存储基础类型以及对象或者是集合等各种格。
  • 因此,NoSQL 数据库扩展性强。

成本:

  • NoSQL 数据库简单易部署,基本都是开源软件,相比关系型数据库价格便宜。

非关系型数据库缺点

  • 数据结构相对复杂,复杂查询方面稍欠。
  • 不提供对 SQL 的支持,所以需要一定的学习成本。
  • 不提供关系型数据库对事务的处理。

常用非关系型数据库

Redis

Redis 是一个用C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 的数据库。

Redis 主要应用于热点数据的缓存、限时业务的运用、计数器、分布式锁、延时操作等。

MemCache

MemCache 是一套分布式的高速缓存系统。

MemCache 目前主要应用于提高网站访问速度,尤其对于一些大型的、需要频繁访问数据库的网站访问速度提升效果十分显著。

MongoDB

MongoDB 是一个基于分布式文件存储的数据库。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品。

MongoDB 最大的特点是它支持的查询语言非常强大。

非关系型数据库应用场景

  • 海量数据存储。
  • 多格式的数据存储。
  • 对查询速度要求快的数据存储。

非关系型数据库总结

非关系型数据库也被称为 NoSQL 数据库,NoSQL 的本意是 “Not Only SQL”,指的是非关系型数据库,而不是 “NO SQL” 的意思。

典型的非关系型数据库有:Redis、MemCache 和 MongoDB。