前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >为什么海量数据场景中NoSQL越来越重要?

为什么海量数据场景中NoSQL越来越重要?

作者头像
dys
发布2018-04-03 17:16:23
1K0
发布2018-04-03 17:16:23
举报
文章被收录于专栏:性能与架构性能与架构

随着数据规模、并发量越来越大,非关系型数据库NoSQL(Not Only SQL)越来越受到重用

NoSQL带来了很多新特性,比如良好的可扩展性、弱化设计范式、弱化一致性要求,在应对高并发问题时表现良好,使其更加适应海量数据的应用场景

在海量数据场景中,SQL数据库面临几个明显的挑战

事务

关系模型要求多个SQL操作满足ACID特性,要求强一致性

分布式系统中,要保证它们的原子性,就要用到分布式协议,性能成本高

NoSQL只要求最终一致性,而非ACID

结构化

SQL数据库有个特点:高度组织化结构化数据

设计时需要满足范式要求,例如

班级表中有编号、名称、简介等,那么在学生表中,包含班级编号后,就不能加入班级名称、简介等信息

这样可以避免大量的数据冗余,但同时会带来大量的联表操作

NoSQL中没有这类要求,为避免多表关联操作,往往会使用数据冗余简化数据结构,提升性能

NoSQL的存储结构也不限于表,很丰富,有:键值对存储,列存储,文档存储,图形结构,可以满足不同需求

性能

关系数据库主要基于硬盘,NoSQL更多的使用了内存

关系数据库主要采用B树存储引擎,NoSQL的存储引擎更加丰富,例如LSM树,写性能大幅提高

需要注意的是,NoSQL在海量数据场景中有一些优势,但不代表NoSQL要取代SQL

比如银行系统,该类系统需要使用具备强数据完整性、支持事务的健壮存储系统,SQL数据库就更加适合

他们是互相帮助的关系,二者的优势会不断融合

NoSQL也有一些问题,例如:

缺少统一标准

SQL数据库已经高度标准化,有完整的生态链

而NoSQL家族庞大,思路各不相同,没有统一标准

运维复杂

NoSQL存储结构很丰富,非常强大,但同时也意味着繁杂,使其学习、应用、运维的成本增高

而关系数据库有丰富的运维工具和大量经验丰富的运维人员

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-04-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档