NoSql概述
不是存图形,存的是关系学习方式:基本的理论先学习,然后将知识融会贯通!兴趣是最好的老师
Nosql概述
为什么要使用mysql
1.单机mysql年代
90年代,一个网站的访问量一般不会太大,单个数据库完全够用。随着用户增多,网站出现以下问题
- 数据量增加到一定程度,单机数据库就放不下了
- 数据的索引(B+ Tree),一个机器内存也存放不下
- 访问量变大后(读写混合),一台服务器承受不住。
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特点:
-
方便扩展(数据之间没有关系,很好扩展)
-
大数据量高性能(Redis 一秒写8万次,读取11万次)
-
数据类型多样型,不需要实现设计数据库
-
传统RDBMS和NOSql
关系型RDBMS
- 结构化组织
- sql
- 数据和关系都存在单独的表中
- 操作,数据定义语言
- 严格的一致性
- 基础的事务
- 。。。。。。
NoSql
- 不仅仅是数据
- 没有固定的查询语言
- 键值对,列存储,文档存贮,图形数据库(社交关系)
- 最终一致性
- CAP定理,BASE(异地多活)
- 高性能,高可用,高可扩
- 。。。。
了解:3V+3高
大数据时代3V:主要是描述问题的:
- 海量Velume
- 多样Variety
- 实时Velocity
大数据时代的3高 : 主要是对程序的要求
- 高并发
- 高可扩
- 高性能
阿里巴巴演进分析
如果 未来当一个架构师:没有什么是加一层解决不了的!
商品的基本信息
名称,价格,商家信息
关系型数据库就可以,
淘宝mysql不是大家用的mysql
商品描述,评论(文字多)
文档型数据库,MongoDB
图片
分布式文件系统 FastDFS
淘宝自己:TFS
google:GFS
Hadoop:HDFS
阿里云:oss
商品关键字(搜索)
搜索引擎:solr elasticsearch
淘宝自用:ISearch 多隆(程序员)开发
商品热门的波段信息
内存数据库,Redis Tair Memache
商品交易,外部支付接口
三方应用
大型互联网应用问题:
- 数据类型太多
- 数据源繁多
- 数据要改造,大面积改造?
解决问题:UDSl 同一数据服务平台,应用集群和底层数据源之间的一层代理
NoSql四大分类
KV键值对:
- 新浪:Redis
- 美团:Redis+Tair
- 阿里,百度:Redis+Memecache
文档性数据库(bson格式,和json格式一样):
- MongoDB
- j给予分布式文档存储的数据库,C++开发,处理文档
- 介于关系型和非关系型中间的数据库,是非关系型中功能最丰富,最想关系型数据库的
列存储数据库
- HBase
- 分布式文件系统:
图关系数据库
- 不是存图形,存的是关系
Neo4j,InfoGrid
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· 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