一、为什么要用Nosql

1. 单机MySQL的时代。

   一个基本的网站访问量一般不会太大,单个数据库完全足够。
   那时候更多使用的静态网页html,服务器根本没有太大压力。
   这时候网站的瓶颈是什么?

  •    - 数据量如果太大,一个机器放不下。
  •    - 数据量太大需要建立数据的索引(B+ Tree),一个服务器内存放不下。
  •    - 访问量读写混合,一个服务器承受不了。

2. memcached缓存+MySQL+垂直拆分(读写分离)。
 
   网站80%的情况都是在读,每次都要去查询数据库的话效率低,我们可以使用缓存来保证效率,减轻数据库的压力。
   发展过程:优化数据结构和索引->文件缓存(IO)->Memcached缓存
3. 分库分表+水平拆分+MySQL集群。
   M:master主节点
   S:slave从节点
   主从复制。
   使用分库分表来解决写的压力。
 
4. 如今最近的年代。
   2010~2020十年之间,世界已经发生了翻天覆地的变化。(定位也是一种数据。音乐!热榜!)
   MySQL等关系型数据库就不够用了,数据量很多,变化很快。
   MySQL有些用来存储比较大的文件、博客、图片,数据库表很大,效率低下,如果有一种数据库来专门处理这种数据,
   MySQL压力就会变小(研究如何处理这些问题)。大数据的IO压力下,表几乎没法更大。
5. 目前的互联网项目。
 
6. 为什么要用NoSql
   用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长。
   这时候我们就需要使用NoSql数据库,NoSql可以很好的处理以上的情况。

二、什么是NoSql

Not Only SQL(不仅仅是SQL)泛指非关系型数据库。
随着web2.0互联网的诞生,传统的关系型数据库很难对付,尤其是超大规模的高并发社区。
很多的数据类型:用户的个人信息,社交网络,地理位置。这些数据类型的存储不需要一个固定的格式!
不需要多余的操作就可以横向扩展的!Map<sring,Object>使用键值对来控制。

三、NoSql特点

  • - 方便扩展(数据之间没有关系,很好扩展)
  • - 大数据量高性能(redis一秒可以写8万次,读取11万,NoSql的缓存记录级,是一种细粒度的缓存,性能比较高)
  • - 数据类型是多样型的(不需要事先设计数据库,随取随用。如果是数据量十分大的表,很多人就无法设计了)
  • - 传统的RDBMS和NoSql

   传统的RDBMS -结构化组织 -SQL -数据和关系都存在单独的表中 -操作,数据定义语言 -严格的一致性 -基础的事务 


   Nosql -不仅仅是数据 -没有固定的查询语言 -键值对存储,列存储,文档存储,图形数据库(社交关系) -最终一致性 -CAP定理和BASE(异地多活)初级架构师!(狂神理念:只要学不死,就往死里学!) -高性能,高可用,高可扩展 

  关注成都知了堂,获得更多Java学习资料:https://zhiliaotang.cn

 

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐