美文网首页
【MySql+NoSql】发展历史

【MySql+NoSql】发展历史

作者: su_wing | 来源:发表于2017-11-06 00:36 被阅读0次

对于数据库这块繁杂的知识,跟学习java web是一样的感觉,不知道从何入手。

每当这种时候,请想到从历史的发展入手,发展的轨迹会告诉你技术的演变过程,我们是因为什么原因才会进行这种演变,由此我们就可以知道每一种技术的应用场景。

数据库技术的发展历史(多个技术可以结合使用)

1.关系数据库时代

在90年代,一个网站的访问量一般都不大,用单个数据库完全可以轻松应付。在那个时候,更多的都是静态网页,动态交互类型的网站不多。
传统的关系数据库具有不错的性能,高稳定型,久经历史考验,而且使用简单,功能强大,同时也积累了大量的成功案例。在互联网领域,MySQL成为了绝对靠前的王者,毫不夸张的说,MySQL为互联网的发展做出了卓越的贡献。

2.Memcached+MySQL(用缓存缓解读压力)

随着论坛、微博等的火爆,不管是数据量还是网站访问流量都暴增,大部分的网站在数据库方面都出现了性能问题。这种变化使我们不得不将之前完全对功能的关注转移到对性能的关注上。于是人们开始对缓存索引进行优化。开始比较流行的是通过文件缓存的方式缓解数据库压力,但随着访问量的进一步暴增,多台web服务器不能够共享缓存,并且I/O操作非常之多。

于是就出现了Mencached技术,这是一个独立的分布式内存缓存服务器,能够为多台web服务器提供共享的缓存【M1】。然后在此基础上,又出现了多台缓存服务器的扩展机制,其原理是根据hash算法映射到服务器【M2】。而多台缓存服务器再进行扩展或者减少服务器时,要重新进行大量的hash映射,扩展性很不好,为解决这一弊端,出现了一致性哈希。【M3】(Mencached的三个阶段,要点:一致性哈希算法)

3.MySql主从复制 (实现读写分离,缓解读写压力,but读写仍然是基于全表操作)

Memchached只能缓解读的压力,于是出现了Mysql主从复制技术,master-slave实现读写分离,缓解之前读写全部集中在一个数据库上的压力。

【Mysql】主从复制 - 简书

4.分表分库

随着读写压力的进一步扩大,主从技术仍然是在大表进行读写的方式也不堪负重。

1)由于MyISAM使用表锁,在高并发下会出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

2)使用分表分库来缓解写压力和数据增长的扩展问题。将大表拆为小表。【!!!!!】

5.NOSQL

至此,在mysql上对于大流量大数据的复杂技术就结束了,要使用这种复杂技术以及维护都是一件比较困难的事。可以说NoSql的出现时大势所趋,

NoSQL相对于Mysql来说,有很多优点:

1)成本低 2)可很好的处理非结构/半结构化的数据 3)可伸缩性,很容易实现横向扩展,并且可以自动分片(即增加多台服务器,通过负载均衡把握性能)

4)动态模式(接受数据的字段的变动)5)自动复制,良好的备份容灾能力

由此可知Nosql的适用场景

1)数据结构复杂 2)表经常变化 3)高并发 大流量 4)海量数据

6.Mysql+Nosql

Mysql屹立市场这么多年,有着大量的优势,如事务机制等。我们不可否认他的作用。

因此我们可以将Nosql作为Mysql在某些方面的扩展,如:数据结构,高并发大数据的场景。‘

例子:如一条用户评论数据,可将id,用户,时间等数据存在Mysql中,将大文本却不会进行查询的评论放在Nosql中。

!!!【结合双方优缺点,合理运用】

相关文章

  • 【MySql+NoSql】发展历史

    对于数据库这块繁杂的知识,跟学习java web是一样的感觉,不知道从何入手。 每当这种时候,请想到从历史的发展入...

  • ES发展历史

    关系:ECMAScript是JavaScript的规格,Js是Es的一种实现 1996.11 ...

  • Python发展历史

    Python的作者,Guido von Rossum,荷兰人。1982年,Guido从阿姆斯特丹大学获得了数学和计...

  • Java发展历史

    1.Java技术体系 Java程序设计语言,Java虚拟机,Java API类库三部分成为 JDK,JDK是Jav...

  • 历史教师发展

    历史教师的专业发展内容包括五大方面: 第一是历史教育智慧。 第二是历史思辨能力。 第三是学科拓展能力。 第四是人格...

  • Android - 发展历史

    1.Android并不是Google创造的,而是Android公司创造的,该公司的创始人是Andy Rubin。该...

  • 英语发展历史

    一种民族语言(包括词汇)的发展与民族的历史密切可关。要了解英语语汇的发展史,不可避免地跟整个英语的发展史,乃至英国...

  • Java发展历史

    Java8新特性:

  • 青瓷发展历史

    南朝 浙江龙泉当地汉族劳动人民利用当地优越的自然条件,吸取越窑、婺窑、瓯窑的制瓷经验,开始烧制青瓷。龙泉查田下保村...

  • 前端发展历史

    1.js操作html 利用原生的javascript (js包括ECMAscript BOM DOM)的DOM操作...

网友评论

      本文标题:【MySql+NoSql】发展历史

      本文链接:https://www.haomeiwen.com/subject/ujecmxtx.html