ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Nosql数据库总结

2021-12-10 15:32:10  阅读:147  来源: 互联网

标签:总结 关系 Nosql 数据库 Redis Mysql 数据


Nosql概述
为什么要用Nosql而不是关系型数据库?
大数据时代(一般的数据库无法进行分析处理)

  • 单机Mysql时代

    一个基本网站访问量不大,单个数据库完全足够,静态网页html=>服务器没有太大的压力
    这种情况下,网站瓶颈是什么
  1. 数据量如果太大,一台机器放不下
  2. 数据索引 单表超过300万一定要建立索引,Mysql(B+ tree索引)台打,一个机器也放不下
  3. 访问量(读写混合),一个服务器承受不了

只要发生三种情况之一,一定要改进

  • 缓存时代 Memcached+Mysql+垂直拆分(读写分离,主从复制)==>解决读的问题
    优化Mysql底层数据结构和索引 ----> 文件索引(IO) ----> 缓存Memcached
    网站80%都在执行读操作,每次查询数据库都会十分麻烦,希望减轻数据的压力,我们可以使用缓存来保证效率

  • 表分区(没有大量使用)

  • 分库分表+水平拆分(Mysql集群)==>使用分库分表解决写的压力

  • 如今数据量很多,变化很快,Mysql等关系型数据库不够用了

新型数据库==>图形数据库,Json数据库
使用Mysql数据库存储图片,文件等大型数据,数据库表就会很大,效率就低了
如果有一种数据专门处理大型数据,那么mysql的压力就会变小,大数据的IO压力下,表几乎无法更改(一亿条数据增加一列 非常难办!)
灰度发布:平滑升级

互联网基本架构模型

本质:数据库(读,写)
MyISAM:表锁(查询一个数据需要锁定整个表)==>影响效率,高并发下出现严重问题
Innodb:行锁(查询一个数据只需锁定一行)

为什么要用NoSql?
用户的个人信息,社交网络,地理位置,用户自己产生的数据,用户日志等爆发式增长
关系型数据库达到瓶颈,使用Nosql可以很好的处理这种情况

NoSql=Not Only Sql(不仅仅是Sql)泛指非关系型数据库,随着WEB2.0互联网的诞生,传统的关系型数据库很难对付(尤其是大规模高并发的社区)
关系型数据库:表格(行和列来记录)(POI使用java操作Excel)
Nosql数据库:没有固定的格式,拓扑图(动态发展),不需要多于操作就可以横向扩展, Map<String,Object>

Nosql特点

  • 方便扩展(数据之前没有关系,很好扩展!) 解耦
  • 大数据量高性能(Redis一秒可以写8w次,读取11w次,Nosql的缓存记录,是一种细粒度的缓存,性能会比较高)
  • 数据类型多样型(八种类型),不需要设计数据库,随取随用(如果数据量大很多人就无法设计)

传统RDBMS

  1. 结构化组织
  2. Sql
  3. 数据和sql都存在单独的表中 row col
  4. 操作数据的操作,数据定义语言
  5. 严格的一致性
  6. 基础的事务

Nosql

  1. 不仅仅是数据
  2. 没有固定的查询语言
  3. 键值对存储,列数据(Hbase),文档存储(Mongodb),图形数据库存储
  4. 最终一致性
  5. CAP定理和BASE理论(异地多活)
  6. 高性能,高可用,高扩展

大数据时代的3V+3高

Nosql+关系型数据库一起使用

阿里巴巴演进分析

商品基本信息:mysql
商品描述:mongodb
图片:分布式文件系统Hdfs
搜索:搜索引擎elasticserach,ISearch
热门波段信息:内存数据库(Redis,memache)
商品交易:三方应用

出现问题

  • 数据类型太多
  • 数据源太多
  • 经常重构
  • 数据改造,大面积改造

统一数据服务层UDSL,类似JDBC屏蔽了数据库的差异

Nosql四大分类

  1. KV键值对存储
    Map<String,Object>
    新浪:Redis
    美团:Redis+Tair
    阿里,百度:Redis+Memache

  2. 文档型数据库(bson(类似于json))

  • 必须掌握 MongoDB:一个基于分布式文件存储的数据库,C++编写,主要用于处理大量文档
  • MongDB是一个介于关系型数据库和非关系型数据库的中间产品,是Nosql非关系型数据库中功能最丰富,最像关系型数据库的
  1. 列存储数据库(HBase,分布式文件系统)

  2. 图形关系数据库(社交拓扑图)

  • 存放的是关系而不是图形
  • Neo4j

标签:总结,关系,Nosql,数据库,Redis,Mysql,数据
来源: https://www.cnblogs.com/Liuyunsan/p/15672075.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有