NoSQLMySQL 数据库发展过程与瑕疵

风关系数据库的瓶颈

风土的关系数据库具有无可争辩的性,高稳定型,久经历史考验,而且动用简单,功能强大,同时也累了大气底中标案例。在互联网世界,MySQL成为了绝对靠前的王,毫不夸张的说,MySQL为互联网的上扬做出了独立的献。

在90年代,一个网站的访问量一般还不慌,用么数据库完全可轻松应付。在死时候,更多的还是静态网页,动态交互类型的网站不多。

交了最近10年,网站开始快速提高。火爆的论坛、博客、sns、微博逐渐引领web领域的潮流。在首,论坛的流量其实呢不雅,如果你沾网络比较早,你也许还记得特别时候还有文本型存储的论坛程序,可以设想般的论坛的流量产生多深。

Memcached+MySQL

后来,随着访问量的起,几乎大部分使用MySQL架构的网站于数据库及都起来出现了性问题,web程序不再仅专注在功能上,同时也以追性。程序员们开始大量底用缓存技术来解决数据库的压力,优化数据库的组织及目录。开始于盛行的是透过文件缓存来解决数据库压力,但是当访问量继续增大的时光,多台web机器通过文件缓存不可知共享,大量的多少文件缓存也带了了比高的IO压力。在是时段,Memcached就本之成一个可怜时尚的技能活。

Memcached作为一个独门的分布式的缓存服务器,为多单web服务器提供了一个共享的赛性能缓存服务,在Memcached服务器上,又提高了冲hash算法来进行多尊Memcached缓存服务之壮大,然后又起了一致性hash来化解多或回落缓存服务器造成更hash带来的雅量缓存失效的害处。当时,如果你去面试,你说而有Memcached经验,肯定会加分的。

Mysql主从读写分离

鉴于数据库的写副压力增加,Memcached只能解决数据库的读取压力。读写集中在一个数据库及受数据库不堪重负,大部分网站开以主从复制技术来达到读写分离,以提高读写性能和读库的可是扩展性。Mysql的master-slave模式改为是时段的网站标配了。

分表分库

趁着web2.0之接轨高速发展,在Memcached的高速缓存,MySQL的主从复制,读写分离之根底之上,这时MySQL主库的抒写压力开始产出瓶颈,而数据量的不断增产,由于MyISAM使用表锁,在赛并作下会冒出严重的吊问题,大量的高并发MySQL应用起来以InnoDB引擎代替MyISAM。同时,开始流行用分表分库来缓解写压力及多少增长的扩展问题。这个时节,分表分库成了一个热门技术,是面试的俏问题啊是业界讨论的香技术问题。也就算以斯时段,MySQL推出了还免顶稳定的表分区,这为受技术实力一般的店家带来了梦想。虽然MySQL推出了MySQL
Cluster集群,但是由在互联网几乎从未水到渠成案例,性能也非可知满足互联网的要求,只是当高可靠性上提供了要命特别之保。

MySQL的扩展性瓶颈

于互联网,大部分的MySQL都应该是IO密集型的,事实上,如果您的MySQL是单CPU密集型的话,那么坏可能而的MySQL设计得起性能问题,需要优化了。大数据量高并发环境下之MySQL应用开发尤其复杂,也尤为有技术挑战性。分表分库的平整把握都是索要更的。虽然发出像淘宝这样技术实力强大的柜出了晶莹剔透的中游件层来遮开发者的复杂,但是避免不了总体架构的繁杂。分库分表的子库到自然等级又面临扩展问题。还有就是是求的更动,可能以得平等栽新的分库方式。

MySQL数据库也经常存储一些大文本字段,导致数据库表非常之非常,在召开数据库恢复的时就招大的迟缓,不爱快速回升数据库。比如1000万4KB大小的文件就类似40GB的尺寸,如果能够将这些多少从MySQL省去,MySQL将易得死去活来之小。

关系数据库很有力,但是其并无能够大好之敷衍所有的下场景。MySQL的恢弘性差(需要复杂的技巧来落实),大数额下IO压力格外,表结构改变困难,正是当前利用MySQL的开发人员面临的问题。

NOSQL的优势

易扩展

NoSQL数据库种类层出不穷,但是一个齐之性状都是失去丢关系数据库的关联项目特色。数据里无关系,这样就算非常容易扩展。也无形之间,在搭的框框上带来了但扩大的力量。

数据量,高性能

NoSQL数据库都具备老高的读写性能,尤其以挺数据量下,同样表现美好。这得益于它的无关系性,数据库的构造简单。一般MySQL使用Query
Cache,每次表的创新Cache就失效,是同等种植非常粒度的Cache,在针对web2.0之相互频繁之以,Cache性能不强。而NoSQL的Cache是记录级的,是千篇一律种细粒度的Cache,所以NoSQL在是层面达到来说将性能大很多矣。

巧的数据模型

NoSQL无需先呢而存储的数建立字段,随时可以储存于定义之数码格式。而以关系数据库里,增删字段是一致桩好累的工作。如果是老很数据量的阐发,增加字段简直就是是一个梦魇。这点于深数据量的web2.0时期更加引人注目。

高可用

NoSQL在无太影响性的景象,就可以方便的实现强可用之架构。比如Cassandra,HBase模型,通过复制模型呢会落实大可用。

总结

NoSQL数据库的出现,弥补了关系数据(比如MySQL)在好几方面的不足,在好几地方能极大的节开发成本和护卫资产。

MySQL和NoSQL都起独家的风味以及运的动场景,两者的紧密结合将见面叫web2.0之数据库发展带来新的笔触。让关系数据库关注在关乎及,NoSQL关注于储存上。

网站地图xml地图