Nosql简识

本文探讨了从单机MySQL时代的局限,到大数据兴起时如何通过缓存、分库分表和NoSQL的引入来应对挑战。重点讲解了NoSQL数据库如MongoDB的文档型特点,以及它在处理用户生成数据和社交网络数据方面的优势。NoSQL的四大分类,包括KV键值对、文档型、列存储和图关系数据库的区别也被深入解析。
摘要由CSDN通过智能技术生成

Nosql概述

为什么要用Nosql

1、单机+mysql的时代:

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

之前互联网并不发达,网站更多使用静态网页,服务器没有太大压力。

这种情况下的网站瓶颈是什么?

1、数据量如果太大,一个机器放不下了!

2、数据的索引(B+Tree),一个及其内存也放不下

3、访问量(读写混合),一个服务器承受不了

只要开始出现上面的三种情况之一,就必须要晋级。

2、加了一个缓存Memcached + mysql + 垂直拆分 (读写分离)

网站80%的数据都是查询,如果每次都去查询数据库就非常麻烦,所以我们加了一个缓存,来减轻服务器的压力

image-20210816161038225

3、分库分表+ 水平拆分 + mysql集群

数据库的本质:读和写

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

转战Innodb:行锁

慢慢的就开始使用分库分表来解决写的压力

MySQL的集群

image-20210816161647024

4、如今最近的年代

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

MySQL有的时候使用它来存储一些比较大的文件,博客,图片,数据库表很大,小路就低了。如果有一种数据库来专门处理这种数据。

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

image-20210816163022678

为什么要用NoSQL!

用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发时增长!

这个时候我们就需要使用NoSQL数据库的,NoSQL可以很好的处理以上的情况!

什么是NoSQL

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

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

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

NoSQL特点

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

2、大数据量高性能

3、数据类型是多样性的(不需要实现设计数据库,随取随用)

4、传统的关系型数据库 RDBMS (要写sql语言,只有row和col )和NoSQL(没有固定的,键值对)

image-20210816170605808

NoSQL的四大分类

KV键值对:

  • Redis

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

  • MongoDB(一般必须掌握)
    • MongoDB是一个基于分布式文件存储的数据库,主要用来处理大量的文档!
    • MongoDB是一个介于关系型数据库和非关系型数据的中间产品!MongoDB是NoSQL(非关系型数据库)中最像关系型数据库的。

列存储数据库

  • HBase
  • 分布式文件系统

图关系数据库

  • 他不是用来存图片的,而是用来存关系的,比如:朋友圈社交网络,广告推荐
  • Neo4j

image-20210816171832627

四者的区别:

image-20210816172132711

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值