nosql数据库是什么数据库?有什么作用?

TheDisguiser 2020-05-03 16:04:52 java常见问答 9409

数据库是一个项目核心,传统的数据库在面对大规模、高并发、吞吐量极高的项目中,会极其乏力,这时候nosql就出现了,它可以解决传统关系型数据库所不能解决的各种问题,下面就让我们一起来了解了解它吧。

noSQL是什么?

NoSQL,泛指非关系型的数据库。由于互联网web2.0网站的兴起,传统关系型数据库处理时已经力不从心了,特别是在处理超大规模和高并发的SNS类型的web2.0纯动态网站显得越来越乏力,出现了许多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

NoSQL最常见的解释是“non-relational”,“Not Only SQL”也被很多人接受。NoSQL仅仅是一个概念,泛指非关系型的数据库,区别于关系数据库,它们不保证关系数据的ACID特性。

Nosql解决了哪些问题?

a. NoSQL 解决了高并发读/写问题

Web 2.0 动态网站需要根据用户的个性化信息来实时生成动态页面和提供动态信息,而无法使用动态页面的静态化技术,因此数据库的并发负载就会非常高。比如,微博、朋友圈的实时更新,就会出现每秒上万次的读/写需求。

关系型数据库在面对每秒上万次的 SQL 查询操作时还能应对自如,但是在面对每秒上万次的 SQL 写操作时就难以胜任了。

普通的 BBS 系统网站也存在高并发读/写的需求,比如,实时统计在线人数、记录热门帖子的浏览次数等,当面对这些需求时,传统的关系型数据库就会出现大量问题。

b.NoSQL 解决了海量数据的高效率存储和访问问题

面对实时产生的大数据量的存储与查询,关系型数据库是难以应付的,会显得效率非常低;而利用 NoSQL 的高效存储与查询能力,就能解决这个问题。

c. NoSQL 实现了高可用性及高可扩展性

在基于Web的架构中,关系型数据库难以进行横向扩展。

当一个网站系统的用户量和访问量与日俱增的时候,数据库没有办法像Web服务器或应用服务器那样通过添加更多的硬件来搭建负载均衡的服务器。对于很多提供 24 小时不间断服务的网站来说,对数据库系统的维护升级和扩展是非常折磨人的一件事,往往需要停机维护和数据迁移。

总之,NoSQL 的出现解决了大规模数据库集中和数据种类不同所带来的各种问题,尤其是大数据实现的困难。

NoSQL数据库有什么特点?

容易扩展,方便使用,数据之间没有关系。

数据模型十分灵活,不需要提前为要存储的数据建立字段类型,随时可以存储自定义的数据格式。

适合大数据量、高性能的存储。

具有高并发读/写、高可用性。

一般在什么应用场景下使用 NoSQL?

大数据量、高并发的存储系统及相关应用开发时。

一些数据模型比较简单的相关应用开发时。

数据一致性要求不是很高的业务场景。

给定 key 来映射一些复杂值的环境时。

一些大型系统的日志信息的存储。

存储用户信息,如大型电商系统的购物车、会话等。

多数据源的数据存储时。

易变化、热点高频信息、关键字等信息的存储时。

以上就是本文的全部内容了,更多Java常见问答相关内容请多多关注我们了解吧。