非关系型数据库有哪些优缺点?
非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合,可以是文档或者键值对等 。当初我在黑马程序员培训时候就学过 。
优点:
1、格式灵活:存储数据的格式可以是key,value形式、文档形式清锋、图片形式等等搭正念,文档形式、图片形式等等,使用灵活,应用场景广泛,而关系型数据库则只支持基础类型 。
2、速度快:nosql可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘;
3、高扩展性;
4、成本低:nosql数据库部署简单,基本都是开源软件 。
缺点:
1、不提供sql支持,学习和使用成本较高;
2、无事务处理;
3、数据结构相对复杂,复杂查询方面稍欠 。
非关系型数据库的分类和比较:
1、知困文档型
2、key-value型
3、列式数据库
4、图形数据库
什么是非关系型数据库?,如何定义?
随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速 。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:
1、High performance——对数据库高并发读写的需求
Web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求 。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘IO就已经无法承受了 。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如像JavaEye网站的实时统计在线用户状态,记录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求 。
2、Huge Storage——对海量数据的高效率存储和访问的需求
类似Facebook,twitter,Friendfeed这样的SNS网站,每天用户产生海量的用户动态,以Friendfeed为例,一个月就达到了2.5亿条用户动态,对于关系数据库来说,在一张2.5亿条记录的表里面进行SQL查询,效率是极其低下乃至不可忍受的 。再例如大型web网站的用户登录系统,例如腾讯,盛大,动辄数以亿计的帐号,关系数据库也很难应付 。
3、High Scalability && High Availability——对数据库的高可扩展性和高可用性的需求
在基于web的架构当中,数据库是最难进行横向扩展的,当一个应用系统的用户量和访问量与日俱增的时候,你的数据库却没有办法像web server和app server那样简单的通过添加更多的硬件和服务节点来扩展性能和负载能力 。对于很多需要提供24小时不间断服务的网站来说,对数据库系统进行升级和扩展是非常痛苦的事情,往往需要停镇租机维护和数据迁移,为什么数据库不能通过不断的添加服务器节点来实现扩展呢?
在上面提到的“三高”需求面前,关系数据库遇到了难以克服的障碍,而对于web2.0网站来说,关系数据库的很多主要特性却往往无用武之地,例如:
1. 数据库事务一致性需求
很多web实时系统并不要求严格的数据库事务,对读一致性的要求很低,有些场合对写一致性要求也不高 。因此数据库事务管理成了数据库高负载下一个沉重的负担 。
2. 数据库的写实时性和读实时性需求
对关系数据库来说,插入一条数据之后立刻查询,是肯定可以读出来这条数据的,但是对于很多web应用来说,并不要求这么高的实时性,比方说我(JavaEye的robbin)发一条消息之后,过几秒乃御拦兆至十几秒之后,我的订阅者才看到这条动态是完全可以接受的 。
3、对复杂的SQL查询,特别是衡肢多表关联查询的需求
任何大数据量的web系统,都非常忌讳多个大表的关联查询,以及复杂的数据分析类型的复杂SQL报表查询,特别是SNS类型的网站,从需求以及产品设计角度,就避免了这种情况的产生 。往往更多的只是单表的主键查询,以及单表的简单条件分页查询,SQL的功能被极大的弱化了 。
因此,关系数据库在这些越来越多的应用场景下显得不那么合适了,为了解决这类问题的非关系数据库应运而生,现在这两年,各种各样非关系数据库,特别是键值数据库(Key-Value Store DB)风起云涌,多得让人眼花缭乱 。前不久国外刚刚举办了NoSQL Conference,各路NoSQL数据库纷纷亮相,加上未亮相但是名声在外的,起码有超过10个开源的NoSQLDB,例如:
Redis,Tokyo Cabinet,Cassandra,Voldemort,MongoDB,Dynomite,HBase,CouchDB,Hypertable,Riak,Tin,Flare,Lightcloud,KiokuDB,Scalaris,Kai,ThruDB,......
这些NoSQL数据库,有的是用C/C++编写的,有的是用Java编写的,还有的是用Erlang编写的,每个都有自己的独到之处,看都看不过来了,我(robbin)也只能从中挑选一些比较有特色,看起来更有前景的产品学习和了解一下 。
关系型数据库和非关系型数据库区别1/7 分步阅读
1.实质 。非关系型数据库的实质:非关系型数据库产品是传统关系型数据库的功能阉割版本,通过减少用不到或很少用的功能,来大幅度提高产品性能 。
2/7
2.价格 。目前基本上大部分主流的非关系型数据库都是免费的 。而比较有名气的关系型数据库,比如Oracle、DB2、MSSQL是收费的 。虽然Mysql免费,但它需要做很多工作才能正式用于生产 。
3/7
【关系型数据库和非关系型数据库区别 非关系型数据库定义】3.功能 。实际开发中,有很多业务需求,其实并不需要完整的关系型数据库功能,非关系型数据库的功能就足够使用了 。这种情况下,使用性能更高、成本更低的非关系型数据库当然是更明智的选择 。
4/7
传统的SQL数据库有3个缺点
许可费用昂贵
不能自动Sharding
严格的Schema
互联网公司一般都是技术密集型的,就自己根据自己的需求搞了一套数据存储,牺牲了严格一致性,满足互联网伸缩性的要求 。
5/7
nosql 当年是为了处理 杂乱的非结构化数据来设计的 比如 网页访问信息 那就如楼上说的 阉割了sql 的 acid 特性 这样当然快了啊 比如插入数据
相反如果是一些 交易数据 数据的安全稳定 压倒一切的时候 rdbms 就显现威力了 但是rdbms 在面对nosql的 一些挑战之后 大力优化了 对于一些 非结构化数据的支持 比如json 数据 同时rdbms 对于 olap and oltp 的支持 也要比 nosql快的你是一点半点
6/7
非关系型数据库的优势:1. 性能NOSQL是基于键值对的,可以想象成表中的主键和值的对应关系,而且不需要经过SQL层的解析,所以性能非常高 。2. 可扩展性同样也是因为基于键值对,数据之间没有耦合性,所以非常容易水平扩展 。
7/7
关系型数据库的优势:1. 复杂查询可以用SQL语句方便的在一个表以及多个表之间做非常复杂的数据查询 。2. 事务支持使得对于安全性能很高的数据访问要求得以实现 。对于这两类数据库,对方的优势就是自己的弱势,反之亦然 。
下面哪些是非关系型数据库
下面哪些是非关系型数据库,非关系型数据库有:
1、MongoDB,是一个面向文档的开源NoSQL数据库;
2、Cassandra,是Facebook为收件箱搜索开发的;
3、Redis,是最著名的键值存储 。
NoSQL数据库(非关系型数据库)是用于存储和检索数据的非关系数据库系统消伏段 。在当今世界,我们不应该只以没有预定义固定模式的表格式存储所有数据(固定没有列) 。像用户生成的数据、地理位置数据、物联网生成的数据一样,社交图是真实世界数据呈指数级增长的例子 。这些庞大的数据也需要大量的处理 。这时NoSQL数据库就拿誉出现了 。使用NoSQL数据库,我们可厅凯以存储和退休的文件,键值,图形为基础的数据容易和更快 。我们可以很容易地避免复杂的SQL连接操作 。易于使用NoSQL DBs对实际问题(web和企业业务应用程序)进行水平伸缩 。
非关系型数据库都有哪些?
常见的非关系型数据库有:NoSql、Cloudant、MongoDB、redis、HBase 。
非关系型数据库主要包括几类各有什么特点?
非关系型数据库(NoSQL)是一种不依赖于关系模型的数据库,它提供了一种更灵活、可告悔扩展的数据存储方式 。非关系型数据库主要包括以下几类:
- 列存储型数据库:侍友渗这种数据库通常把数据存储在一列中,并支持快速的列计算和分布式计算 。它适用于处理海量的结构化数据,比如日志、传感器数据等 。
- 文档型数据库:这种数据库通常把数老脊据存储在文档中,并支持对数据的灵活查询和复杂的聚
关于非关系型数据库和非关系型数据库定义的内容就分享到这儿!更多实用知识经验,尽在 www.hubeilong.com
- 给孩子的寄语和期望
- 40寸的电视长和宽分别是多少
- rougelike是什么类型游戏,rougelike和roguelite区别
- 当代史和现代史的区别
- 目的偏旁字有哪些字,目的偏旁有哪些字组词和拼音
- 甘蔗可以和芒果同时吃吗
- 序字组词和部首,扇字组词
- 小米10 Pro和荣耀30 Pro+哪个好-小米10 Pro和荣耀30 Pro+对比测评 小米10pro价格公布
- 各种动物的特点是什么 动物尾巴的特点和作用
- 在职场中,工作思路和工作经验,谁更重要 认知盈余:自由时间的力量简介