NoSql概述

不是存图形,存的是关系学习方式:基本的理论先学习,然后将知识融会贯通!兴趣是最好的老师

Nosql概述

为什么要使用mysql

1.单机mysql年代

90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题

  1. 数据量增加到一定程度,单机数据库就放不下了
  2. 数据的索引(B+ Tree),一个机器内存也存放不下
  3. 访问量变大后(读写混合),一台服务器承受不住。

2.Memcached(缓存)+MySql+垂直拆分(读写分离)

网站80%的情况都是在读,每次都要去查询数据库的话就十分的麻烦!所以说我们希望减轻数据库的压力,我们可以使用缓存来保证效率!

优化过程经历了以下几个过程:

  • 优化数据库的数据结构和索引(难度大)
  • 文件缓存,通过IO流获取比每次都访问数据库效率略高,但是流量爆炸式增长时候,IO流也承受不了
  • MemCache,当时最热门的技术,通过在数据库和数据库访问层之间加上一层缓存,第一次访问时查询数据库,将结果保存到缓存,后续的查询先检查缓存,若有直接拿去使用,效率显著提升。

3.分库分表+水平拆分+MySql集群

本质:数据库(读,写)

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

转战InnoDB:行锁

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

4.如今最近的年代

如今信息量井喷式增长,各种各样的数据出现(用户定位数据,图片数据等),大数据的背景下关系型数据库(RDBMS)无法满足大量数据要求。Nosql数据库就能轻松解决这些问题。

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

为什么要用NoSQL ?

用户的个人信息,社交网络,地理位置。用户自己产生的数据,用户日志等等爆发式增长!
这时候我们就需要使用NoSQL数据库的,Nosql可以很好的处理以上的情况!

什么是NoSql

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

泛指非关系型数据库,着web2.0互联网的诞生,传统的关系型数据库很难对付web2.0时代!尤其是超大规模的高并发的社区,暴露出来很多难以克服的问题,NoSQL在当今大数据环境下发展的十分迅速,Redis是发展最快的。

NoSql特点:

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

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

  3. 数据类型多样型,不需要实现设计数据库

  4. 传统RDBMS和NOSql

    关系型RDBMS

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

    NoSql

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

了解:3V+3高

大数据时代3V:主要是描述问题的:

  1. 海量Velume
  2. 多样Variety
  3. 实时Velocity

大数据时代的3高 : 主要是对程序的要求

  1. 高并发
  2. 高可扩
  3. 高性能
阿里巴巴演进分析

如果 未来当一个架构师:没有什么是加一层解决不了的!

  1. 商品的基本信息

    名称,价格,商家信息

    关系型数据库就可以,

    淘宝mysql不是大家用的mysql

  2. 商品描述,评论(文字多)

    文档型数据库,MongoDB

  3. 图片

    分布式文件系统 FastDFS

    淘宝自己:TFS

    google:GFS

    Hadoop:HDFS

    阿里云:oss

  4. 商品关键字(搜索)

    搜索引擎:solr elasticsearch

    淘宝自用:ISearch 多隆(程序员)开发

  5. 商品热门的波段信息

    内存数据库,Redis Tair Memache

  6. 商品交易,外部支付接口

    三方应用

大型互联网应用问题:

  • 数据类型太多
  • 数据源繁多
  • 数据要改造,大面积改造?

解决问题:UDSl 同一数据服务平台,应用集群和底层数据源之间的一层代理

NoSql四大分类

KV键值对

  • 新浪:Redis
  • 美团:Redis+Tair
  • 阿里,百度:Redis+Memecache

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

  • MongoDB
    • j给予分布式文档存储的数据库,C++开发,处理文档
    • 介于关系型和非关系型中间的数据库,是非关系型中功能最丰富,最想关系型数据库的

列存储数据库

  • HBase
  • 分布式文件系统:

图关系数据库

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

Neo4j,InfoGrid

posted @   jpy  阅读(29)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示