Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6943969
  • 博文数量: 701
  • 博客积分: 10821
  • 博客等级: 上将
  • 技术积分: 12021
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-02 10:41
个人简介

中科院架构师,专注企业数字化各个方面,MES/ERP/CRM/OA、物联网、传感器、大数据、ML、AI、云计算openstack、Linux、SpringCloud。

文章分类

全部博文(701)

分类: Java

2013-03-18 11:04:42

About NoSql

1:社会性网(社会网Social Networking:SN):是指个人之系网,这种基于社会网络关系系思想的网站就是社会性网网站(SNS网站)WEB2.0网站都属于SNS网站,如网聊天(IM)、交友、视频分享、博客、播客、网社区、音共享等。社会性网的理源于六度理(六度分隔理Six Degrees of Separation)和150Rule Of 150)。

2NoSQL被我用得最多的当数key-value,当然有其他的文档型的、列存型数据xml数据等。在NoSQL概念提出之前,些数据就被用于各当中,但是却很少用于web用。比如cdbqdbmbdb数据
3
Memcached一个独立的分布式的存服器,多个web器提供了一个共享的高性能存服,在Memcached器上,又展了根据hash算法来行多台Memcached存服展,然后又出了一致性hash来解决增加或减少存服致重新hash来的大量存失效的弊端。当,如果你去面,你你有Memcached经验,肯定会加分的。

4: Mysql主从写分离

由于数据的写入力增加,Memcached只能解数据力。写集中在一个数据数据不堪重,大部分网站始使用主从制技来达到写分离,以提高写性能和读库的可展性。Mysqlmaster-slave模式成为这候的网站配了。

分表分

随着web2.0继续高速,在Memcached的高速存,MySQL的主从制,写分离的基之上,这时MySQL的写始出,而数据量的持猛增,由于MyISAM使用表,在高并下会出现严重的锁问题,大量的高并MySQL始使用InnoDB引擎代替MyISAM。同始流行使用分表分解写力和数据增问题候,分表分成了一个热门,是面热门问题也是讨论热门术问题。也就在候,MySQL推出了不太定的表分区,术实力一般的公司来了希望。MySQL推出了MySQL Cluster集群,但是由于在互网几乎没有成功案例,性能也不能足互网的要求,只是在高可靠性上提供了非常大的保

MySQL展性瓶

在互网,大部分的MySQL应该IO密集型的,事上,如果你的MySQL是个CPU密集型的,那很可能你的MySQL设计得有性能问题,需要化了。大数据量高并发环境下的MySQL开发越来越复杂,也越来越具有技性。分表分规则把握都是需要经验的。然有像淘宝这样术实大的公司开发了透明的中来屏蔽开发者的复杂性,但是避免不了整个架构的复杂性。分分表的子到一定段又面临扩问题有就是需求的更,可能又需要一新的分方式。

MySQL数据常存一些大文本字段,致数据表非常的大,在做数据候就致非常的慢,不容易快速恢数据。比如10004KB大小的文本就接近40GB的大小,如果能把些数据从MySQL省去,MySQL得非常的小。

系数据大,但是它并不能很好的付所有的景。MySQL展性差(需要复杂的技实现),大数据下IO力大,表构更改困,正是当前使用MySQL开发问题

NOSQL优势

NoSQL数据库种类繁多,但是一个共同的特点都是去掉系数据系型特性。数据之系,这样就非常容易展。也无形之,在架构的面上来了可展的能力。

大数据量,高性能

NoSQL数据都具有非常高的写性能,尤其在大数据量下,同现优秀。得益于它的无系性,数据简单。一般MySQL使用Query Cache次表的更新Cache就失效,是一大粒度的Cache,在针对web2.0的交互繁的用,Cache性能不高。而NoSQLCache记录级的,是一种细粒度的Cache,所以NoSQL面上来就要性能高很多了。

灵活的数据模型

NoSQL无需事先要存的数据建立字段,随可以存自定的数据格式。而在系数据里,增字段是一件非常麻的事情。如果是非常大数据量的表,增加字段直就是一个噩梦。点在大数据量的web2.0代尤其明

高可用

NoSQL在不太影响性能的情况,就可以方便的实现高可用的架构。比如CassandraHBase模型,通过复制模型也能实现高可用。

总结

NoSQL数据的出,弥系数据(比如MySQL)在某些方面的不足,在某些方面能极大的开发成本和维护成本。

MySQLNoSQL都有各自的特点和使用的景,两者的合将会web2.0的数据库发来新的思路。让关系数据库关注在系上,NoSQL注在存

水平展性(horizontal scalability)指能够连接多个硬件的特性,这样可以将多个服器从逻辑上看成一个

1High performance - 数据高并发读写的需

网站要根据用个性化信息来实时生成和提供动态信息,所以基本上无法使用,因此数据发负载非常高,往往要达到秒上万次求。系数据库应付上万次SQL查询还强顶得住,但是付上万次SQL写数据求,硬IO就已无法承受了。其实对于普通的BBS网站,往往也存在高并求的需求。

2Huge Storage - 海量数据的高效率存访问的需求

于大型的SNS网站,天用户产生海量的用户动态,以国外的Friendfeed例,一个月就达到了2.5亿条用户动态系数据,在一2.5亿记录的表里面SQL查询,效率是极其低下乃至不可忍受的。再例如大型web网站的用,例如腾讯,盛大,动辄数以亿计号,系数据也很难应付。

3High Scalability && High Availability- 数据的高可展性和高可用性的需求

[1]在基于web的架构当中,数据是最难进行横向展的,当一个用系访问量与日增的候,你的数据却没有法像web serverapp server样简单的通添加更多的硬件和服务节点来展性能和负载能力。于很多需要提供24断服的网站来行升展是非常痛苦的事情,往往需要停机维护数据不能通不断的添加实现扩展呢

在上面提到的三高需求面前,系数据遇到了以克服的障碍,而网站来系数据的很多主要特性却往往无用武之地,例如

1、数据一致性需求

很多web并不要求格的数据对读一致性的要求很低,有些写一致性要求也不高。因此数据管理成了数据负载下一个沉重的担。

2、数据的写实时性和读实时性需求

对关系数据,插入一条数据之后立刻查询,是肯定可以出来条数据的,但是于很多web用来,并不要求这么高的实时性。

3对复杂SQL查询,特是多表关联查询的需求

任何量的web,都非常忌多个大表的关联查询,以及复杂的数据分析型的复杂SQL查询,特SNS型的网站,从需求以及设计角度,就避免了这种情况的生。往往更多的只是表的主键查询,以及表的简单条件查询SQL的功能被极大的弱化了

当今的需要在横向伸性上能够满足需求。而 NoSQL 就是实现这个需求。Google BigTableAmazonDynamo是非常成功的商 NoSQL 实现。一些源的 NoSQL 体系,如Facebook Cassandra Apache ,也得到了广泛同。NoSQL目的名字上看不出什相同之HadoopVoldemortDynomite有其它很多

NoSQL系型数据库设计理念比

中的表都是存一些格式化的数据构,个元字段的成都一,即使不是个元都需要所有的字段,但数据为每个元分配所有的字段,这样构可以便于表与表之间进接等操作,但从另一个角度来它也是系型数据性能瓶的一个因素。而非键值对,它的构不固定,一个可以有不一的字段,个元可以根据需要增加一些自己的键值对这样就不会局限于固定的构,可以减少一些时间和空开销

特点

可以理超大量的数据

运行在便宜的PC器集群上

PC集群充起来非常方便并且成本很低,避免了“sharding”操作的复杂性和成本。

们击碎了性能瓶

NoSQL的支持者称,通NoSQL架构可以省去将WebJava用和数据转换SQL友好格式的时间行速度得更快。

“SQL并非适用于所有的程序代于那些繁重的重操作的数据,SQL得花。但是当数据库结构非常简单时SQL可能没有太大用

没有多的操作

NoSQL的支持者也承认关系数据提供了无可比的功能集合,而且在上也发挥绝对稳定,他也表示,企的具体需求可能没有那多。

Bootstrap支持

NoSQL目都是源的,因此它缺乏供商提供的正式支持。一点它与大多数目一,不得不从社区中求支持



阅读(2048) | 评论(0) | 转发(0) |
0

上一篇:软件架构之我见

下一篇:pattern in spring1

给主人留下些什么吧!~~