开发者社区> 问答> 正文

SQL 与 NoSQL 的对比


NoSQL 是一个用于描述高扩展高性能的非关系数据库的术语。NoSQL 数据库提供的 schemafree 数据模型使应用无需预先定义表结构,更适应业务的多元化发展,且其对超大数据规模和高并发的支持让 NoSQL 数据库得到了广泛的应用。

SQL 与 NoSQL 数据库对比

关系型数据库NoSQL 数据库
数据模型关系模型对数据进行了规范化,严格定义了表、列、索引以及各个表之间的关系及其他数据库元素,使一张数据表的所有数据都具有相同的结构。非关系(NoSQL)数据库一般不会对表的结构进行严格的定义,通常使用分区键及键值来检索值、列集或者半结构化数据。
ACID传统关系型数据库支持由 ACID(原子性、一致性、隔离性和持久性)定义的一组属性。其原子性体现在一个事务“全部成功或者全部失败”,即完全执行成功或完全不执行某项事务。一致性表示数据库事务不能破坏关系数据的完整性以及业务逻辑上的一致性。隔离性要求并发事务应分别执行,互不干扰。持久性指一旦事务提交后,它所做的修改将会永久保存在数据库上,即使出现宕机也不会丢失。为了获得更为灵活的可水平扩展的数据模型, NoSQL 数据库通常会放弃传统关系数据库的部分 ACID 属性。凭借这些特性,NoSQL 数据库可用来克服一系列包括性能瓶颈、可扩展性、运营复杂性以及不断增加的管理和支持成本的问题,这也让 NoSQL 数据库成了传统关系型数据库在面临海量数据及高并发挑战时的最佳选择。
性能性能一般取决于磁盘子系统、数据集大小、查询优化、索引和表结构。写性能通常受限于磁盘子系统,读性能则受限于结果集的大小。
扩展进行纵向扩展最简单的方式是使用更快的 CPU、磁盘等硬件设备。要获得跨分布式系统的关系表,就需要增加使用成本及技术复杂度。能够利用低成本硬件的分布式集群进行横向扩展,从而在不增加延迟的前提下提高吞吐量和数据规模。
API对存储和检索数据的请求由符合结构化查询语言(SQL)的查询来传达。这些查询由关系数据库系统来解析和执行。应用开发人员可以使用 NoSQL 数据库的开放 API 轻松进行存储和检索数据。通过分区键及键值,应用可以查找键值对、列集或者半结构化数据。


为什么使用表格存储?


表格存储(Table Store)是 NoSQL 数据库的一种,提供海量 NoSQL 数据存储,支持 schemafree 的数据模型,提供单行级别的事务。服务端自动对数据进行分区和负载均衡,让单表数据从 [backcolor=transparent]GB 到 [backcolor=transparent]TB 再到 [backcolor=transparent]PB,访问并发从 [backcolor=transparent]0 到 [backcolor=transparent]百万 都无需繁琐的扩容流程,写性能在 [backcolor=transparent]TB 及 [backcolor=transparent]PB 级数据规模都能保持在单个毫秒,读性能只依赖结果数据集,而不受数据量的影响。
所以相比 OLTP(联机事务处理)场景,表格存储更适用于 Web 规模级应用程序,包括社交网络、游戏、媒体共享和 IoT(物联网)和日志监控等场景。
关于表格存储数据模型信息,请参见 数据模型概念

展开
收起
云栖大讲堂 2017-10-24 17:17:06 2706 0
1 条回答
写回答
取消 提交回答
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载