Not Only Sql 非关系型数据库

关系型数据库在超大规模数据、高并发环境中性能低、数据表扩展难。

关系型数据库和非关系型数据库

(1)存储

  关系型数据库,表中的行和列,满足范式,表之间的关系明确,表结构事先定义、修改表结构困难

  NoSQL,以键值对存储数据、图;动态结构,很容易适应表结构的变化

(2)事务

  关系型:ACID(原子性、一致性、隔离性、持久性)、事务回滚

  NoSQL:BASE(基本可用+柔性事务+最终一致性);ACP中的两个(可用性、一致性、分区容忍性)

(3)性能

  NoSQL存取快

 

NoSQL

1.容易扩展
    数据之间无关系,容易扩展,这样,在架构层面上带来了可扩展的能力。
2.大数据量、高性能
    数据库的结构简单,非常高的读写性能(一秒钟写8万次,读10万次)
    NoSQL的cache是记录级的,是一种细粒度的cache,而MySQL使用query cache,每次表的更新cache就会失效,是一种大粒度的cache。
3.多样灵活的数据模型
    传统的关系型数据库:事先为要存储的数据建立字段,增删字段非常麻烦
    NoSQL:不需要事先建立字段,随时存储自定义的数据格式,增删字段容易
 
1.Redis
  支持多种数据结构(String List Set Sortset  hash),但是在处理String类型的数据会耗费较多内存
  支持持久化(aof、rdb)将内存中的数据保存在磁盘中,重启可再次加载使用
  支持数据备份(主从配置)
  单线程,所有命令串行执行,在并发情况下不用考虑一致性问题,但是单线程对CPU的性能要求高
  对事务的支持不成熟
2.Memcache
  支持的数据类型少
  无法持久化、不能数据备份、只能用作缓存、重启后数据丢失
3.MongDb
  更高的插入优势
  当数据表的规模较大时,可以很容易分割表
  可以快速、安全、自动地实现节点故障转移
  不支持事务