app开发者平台在数字化时代的重要性与发展趋势解析
1205
2022-09-29
关系型数据库与NoSql数据库的比较
一、关系型数据库与NoSql数据库的比较
1、并发支持 关系型数据库:通过事务和锁来支持并发,高并发情况下,执行效率较低。 NoSql:打破了传统关系型数据库范式的约束和事务一致性,因此并发性能高。
2、存储与查询 关系型数据库:利用关系表方式存储数据,通过SQL查询 NoSql:分布式数据库,支持海量数据,多为键值方式存储数据,还有表格/列、文档、图像、对象和多值等存储方式;查询方式也多种多样,查询效率高。
3、扩展方式 关系型数据库:主要通过提升硬件配置等向上扩展方式来提升性能(垂直扩展)。 NoSql:增加数据库节点向外扩展(水平扩展)。
4、索引方式 关系型数据库:B树、哈希等 NoSql:键值索引
5、应用领域 关系型数据库:通用领域 NoSql:特定应用领域,如要求海量数据,高并发,高性能,伸缩性强,可容忍最终一致性的系统。
二、NoSql数据库的类型
按存储类型分有1、键值对 代表是Redis
2、表格/列存储 关系型数据为按行存储。按列存储特别适合一个字段非常多的表,每次查询我们只从其中挑一些字段的情况。为啥呢,因为按行存储的话,尽管我们只获取小部分字段,但系统却不得不先将整行读出来,然后再挑出我们要的字段返回。返回内容的确不多,但背后消耗的性能却不少。因为数据是存放在页里面的,而页的尺寸大小固定,比如通常就是8K、16K等等,如果一行的字段很多,那么一页里包含的记录数就少,为了替我们找到指定的数据,返回的页就要很多,如果这些页没有在内存中,那么还要从磁盘里调度,呵呵,这时硬盘灯就在狂闪,怎么能不慢!
按列存储的话,这种情况就舒服多了。
什么表要用列存储呢?比如说,这个表用来存储一些什么环保水质、水文气象的指标,我去,那些个指标,多到你怀疑人生。
国内南大通用的GBase就是列存储的NOSQL数据库,天津的好像。
3、文档 一条记录就是一个文档。那么这个说是键值对存储方式也无不可。 代表是芒果DB(MongoDb)。它最像关系型数据库了。用javascript 来查询,酷吧。
4、图 代表Neo4j。 常用于知识图谱,人工智能范畴吧。
5、对象和多值存储 未知
三、NoSql的缺点
1、成熟度不够,大量关键特性有待实现 2、开源数据库产品的支持力度有限 3、数据挖掘与BI支持不足,现有许多系统无法直接使用NoSql 4、NoSql属新兴事物,专家和人才较少
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~