|
NoSQL数据库可以提供良好的扩展性和灵活性,很好地弥补了传统关系数据库的缺陷,较好地满足了Web 2.0应用的需求。但是,NoSQL数据库也存在自己的天生不足之处。由于采用非关系数据模型,因此它不具备高度结构化查询等特性,查询效率尤其是复杂查询方面不如关系数据库,而且不支持事务ACID四性。 在这个背景下,近几年,NewSQL数据库开始逐渐升温。NewSQL是对各种新的可扩展、高性能数据库的简称,这类数据库不仅具有NoSQL对海量数据的存储管理能力,还保持了传统数据库支持ACID和SQL等特性。不同的NewSQL数据库的内部结构差异很大,但是它们有两个显著的共同特点:都支持关系数据模型;都使用SQL作为其主要的接口。 目前,具有代表性的NewSQL数据库主要包括Spanner、Clustrix、GenieDB、ScalArc、Schooner、VoltDB、RethinkDB、ScaleDB、Akiban、CodeFutures、ScaleBase、Translattice、NimbusDB、Drizzle、Tokutek、JustOne DB等。此外,还有一些在云端提供的NewSQL数据库(也就是云数据库,在第6章介绍),包括Amazon RDS、Microsoft SQL Azure、Database.com、Xeround和FathomDB等。在众多NewSQL数据库中,Spanner备受瞩目,它是一个可扩展、多版本、全球分布式并且支持同步复制的数据库,是Google的第一个可以全球扩展并且支持外部一致性的数据库。Spanner能做到这些,离不开一个用GPS和原子钟实现的时间API。这个API能将数据中心之间的时间同步精确到10 ms以内。因此,Spanner有几个良好的特性:无锁读事务、原子模式修改、读历史数据无阻塞。 一些NewSQL数据库比传统的关系数据库具有明显的性能优势。比如,VoltDB系统使用了NewSQL创新的体系架构,释放了主内存运行的数据库中消耗系统资源的缓冲池,在执行交易时可比传统关系数据库快45倍。VoltDB可扩展服务器数量为39个,并可以每秒处理160万个交易(300个CPU核心),而具备同样处理能力的Hadoop则需要更多的服务器。 【出处】林子雨.大数据技术原理与应用(第3版).人民邮电出版社,2021年1月.
|