热线电话:13121318867

登录
2018-12-24 阅读量: 936
NoSQL是什么?

NoSQL最初参照非SQL或非关系是,提供了一种用于存储和检索数据的机构的数据库中。此数据使用关系数据库中使用的表格关系以外的方式建模。这样的数据库在20世纪60年代后期出现,但直到二十一世纪初的人气激增才获得NoSQL绰号。NoSQL数据库用于实时Web应用程序和大数据,并且它们的使用随着时间的推移而增加。NoSQL系统有时也称为SQL,不仅强调它们可能支持类似SQL的查询语言这一事实​​。

NoSQL数据库包括简单的设计,更简单的水平扩展到机器集群和更好的可用性控制。NoSQL数据库使用的数据结构与关系数据库中默认使用的数据结构不同,这使得NoSQL中的某些操作更快。给定NoSQL数据库的适用性取决于它应该解决的问题。NoSQL数据库使用的数据结构有时也被视为比关系数据库表更灵活。

许多NoSQL存储都会牺牲一致性,支持可用性,速度和分区容错。更多采用NoSQL存储的障碍包括使用低级查询语言,缺乏标准化接口以及对现有关系数据库的大量先前投资。大多数NoSQL商店缺乏真正的ACID(原子性,一致性,隔离性,耐久性)交易,但一些数据库,如MarkLogic,Aerospike,FairCom c-treeACE,Google Spanner(虽然技术上是一个NewSQL数据库),Symas LMDB和OrientDB已经制作了它们他们的设计的核心。

大多数NoSQL数据库提供了最终一致性的概念,其中数据库更改传播到所有节点,因此对数据的查询可能不会立即返回更新的数据,或者可能导致读取不准确的数据,这是一个被称为过时读取的问题。此外,一些NoSQL系统可能会出现丢失写入和其他形式的数据丢失。一些NoSQL系统提供诸如预写日志记录之类的概念以避免数据丢失。对于跨多个数据库的分布式事务处理,数据一致性是一个更大的挑战。这对NoSQL和关系数据库都很困难。即使是当前的关系数据库也不允许引用完整性约束来跨越数据库。很少有系统维护X / Open XA标准和ACID事务以进行分布式事务处理。

0.0000
2
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子