NoSQL

小德 2021-12-02 12:57:59
Categories: Tags:

Nosql概述

前言

单Mysql时代

单机mysql不够用,大数据时代,数据量过大,一个机器放不下。

索引太大,一个机器内存也放不下。

访问量(读写混合),一个机器承受不了。

Mencached(缓存)+MYSQL+垂直拆分(读写分离)

网站80%是读的操作,每次直接查询数据库十分麻烦,用缓存保证效率。

发展过程:优化数据结构和索引=》文件缓存(IO)=》Memcached(当时最热门的技术!)

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

数据库本质:读,写

早些年MyISAM引擎:表锁,十分影响效率,高并发下出现严重的锁问题.

转战InnoDB引擎:行锁

如今年代

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

MySQL有的使用它来存比较大的文件,数据量大,效率就低了,如果有一种数据库专门处理这种数据,MySQL压力就变得十分小,大数据的IO压力下,表几乎没法变的更大.

为什么要用Nosql?

处理用户的个人信息,社交网络,地理位置等大量的数据量,NoSQL数据库可以很好的解决以上情况.

什么是NoSQL

NoSQL

NoSQL=Not Only SQL(不仅仅是SQL)

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

泛指非关系型数据库,传统关系型数据库很难应付web2.0时代,尤其是超大规模的高并发的社区.Redis发展最快,是我们必须掌握的技术.

NoSQL特点

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

2.大数据量高性能(Redis一秒写8万次,读11万次)

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

4.传统的RDBMS和NoSQL

关系型数据库RDBMS:结构化组织,SQL,数据和关系存在单独表中,数据定义语言,严格的一致性,基础的事务…

非关系型数据库NoSQL:不仅仅是数据,没有固定的查询语言,键值对存储,列存储,文档存储,图形数据库,最终一致性,CAP定理和BASE(异地多活),高性能,高可用,高可扩.

了解:大数据的3V+3高

3V——海量Velume,多样Variety,实时Velocity

3高—–高并发,高可扩,高性能

真正的实践:Nosql+mysql

MongoDB文档型数据库

分布式文件系统 FastDFS

阿里云 OSS

Hadoop HDFS

搜索引擎: solr elasticsearch

ISearch 阿里多隆(阿里第一个程序员)

内存数据库 Redis\Memache

NoSQL的四大分类

KV键值对:

新浪:Redis

美团:Redis+Tair

阿里\百度:Redis+memecache

文档型数据库:

MongoDB(是一个基于分布式文件存储的数据库,用来处理大量文档,C++编写,是一个介于关系型和非关系型中中间产品,是非关系型数据库中功能最丰富,最像关系型数据库)

ConthDB

列存储数据库:

HBase:分布式文件系统

图形关系数据库:

不是存图形,存的是关系.

Neo4j,InfoGrid