• NoSQL概述


    NoSQL概述

    单机MySQL时代

    ​ 大数据时代,一般的数据库无法进行分析处理

    1. 数据量如果太大,一个机器放不下
    2. 数据的索引(B+ Tree),一个机器内存也放不下
    3. 访问量(读写混合),一个机器承受不了

    Memecache + MySQL+垂直拆分(读写分离)

    减轻服务器压力,使用缓存

    发展过程:优化数据结构和索引-->文件缓存(IO)-->Memcached

    分库分表+水平拆分+MySQL集群

    早些年MyISAM:表锁,在高并发下严重影响效率

    Innodb:行锁

    使用分库分表来解决写的压力!

    如今年代

    MySQL等关系型数据库不够用!数据量大,变化很大

    MySQL有的使用它来存储一些比较大的文件,博客,图片等,数据表很大,效率就低了。

    大数据的IO压力下,表几乎没法更大

    目前一个基本的互联网项目

    mark

    为什么要用NoSQL

    用户的个人信息,社交网络,地理位置。用户自己产生的数据,日志等等爆发式增长,无法使用关系型数据库进行存储,需要使用NoSQL!

    什么是NoSQL

    NoSQL = Not Only SQL

    关系型数据库:表格,行,列

    泛指非关系型数据库,随着web2.0到来,传统关系型数据库很难对付web2.0,尤其是超大规模的高并发的社区,暴露出很多难以克服的问题,Redis是当下发展最快的,必须掌握的技术

    很多的数据类型个人信息,社交网络,地理位置等不需要一个固定的格式!不需要过多的操作就可以横向扩展!Map<String,Object>使用键值对来控制

    NoSQL特点

    1. 方便扩展(数据之间没有关系,很好扩展)

    2. 大数据量高性能(Redis一秒写8万次,读取11万次,NoSQL的缓存记录是一种细粒度的缓存,性能比较高)

    3. 数据类型是多样类型的(不需要事先设计数据库,随取随用)

    4. 传统RDBMS和NoSQL

      传统的RDBMS
      - 结构化组织
      - SQL
      - 数据和关系都存在单独的表中
      - 操作,数据定义语言
      - 严格的一致性
      - 基础的事务
      -------
      
      NoSQL
      - 不仅仅是数据
      - 没有固定的查询语言
      - 键值对存储,列存储,文档存储,图形数据库
      - 最终一致性
      - CAP定理和BASE理论 
      - 高性能,高可用,高可扩
      - ----
      

      了解3V+3高

      大数据时代的3V : 主要是描述问题的
      1.海量Volume
      2.多样Variety
      3.实时Velocity
      大数据时代的3高:主要是对程序的要求
      1.高并发
      2.高可扩(随时水平拆分)
      3.高性能
      

      NoSQL四大分类

      K-V键值对:

      • 新浪:Redis
      • 美团:Redis+Tair
      • 阿里、百度:Redis+memecache

      文档型数据库(bson格式和json一样):

      • MongoDB
        • 基于分布式文件存储的数据里,C++编写,处理大量的文档
        • 介于关系型数据库和非关系型数据库的中间产品
        • 是非关系型数据中最像关系型数据库
      • ConchDB

      列存储数据库

      • HBase
      • 分布式文件系统弄

      图关系数据库

      存放的不是图,是关系!

      总结

    mark

  • 相关阅读:
    偶对学习C#以及理解.Net平台的一些看法(二,Junior Bibliography)
    聊聊编程那些破事0.Prehistory
    偶对学习C#以及理解.Net平台的一些看法(一,Prerequisites)
    [转帖]c#.net常用函数列表
    一个编程小题目引发的思考(上)
    geoTools学习笔记001(简介)
    ArcGIS Server 10安装配置(JAVA)
    ARCGIS中label(标注)和Annotation(注记
    JSTL入门开发包详解
    基于C/S的网盘设计(JAVA) 网盘源码实现部分功能
  • 原文地址:https://www.cnblogs.com/dwwzone/p/13144362.html
Copyright © 2020-2023  润新知