1、关系型数据库与NoSql数据库的比较
一、并发支持
关系型数据库:通过事务和锁来支持并发,高并发情况下,执行效率较低。
NoSql:打破了传统关系型数据库范式的约束和事务一致性,因此并发性能高。
二、存储与查询
关系型数据库:利用关系表方式存储数据,通过SQL查询
NoSql:分布式数据库,支持海量数据,多为键值方式存储数据,还有表格/列、文档、图像、对象和多值等存储方式;查询方式也多种多样,查询效率高。
三、扩展方式
关系型数据库:主要通过提升硬件配置等向上扩展方式来提升性能(垂直扩展)。
NoSql:增加数据库节点向外扩展(水平扩展)。
四、索引方式
关系型数据库:B树、哈希等
NoSql:键值索引
五、应用领域
关系型数据库:通用领域
NoSql:特定应用领域,如要求海量数据,高并发,高性能,伸缩性强,可容忍最终一致性的系统。
2、NoSql数据库的类型
按存储类型分有
一、键值对
代表是Redis
二、表格/列存储
关系型数据为按行存储。按列存储特别适合一个字段非常多的表,每次查询我们只从其中挑一些字段的情况。为啥呢,因为按行存储的话,尽管我们只获取小部分字段,但系统却不得不先将整行读出来,然后再挑出我们要的字段返回。返回内容的确不多,但背后消耗的性能却不少。因为数据是存放在页里面的,而页的尺寸大小固定,比如通常就是8K、16K等等,如果一行的字段很多,那