Redis学习笔记(一)--NoSQL入门概述(一)

14 篇文章 0 订阅
14 篇文章 2 订阅

数据库存储瓶颈

这里写图片描述

DAL是数据访问层的英文缩写,即为数据访问层(Data Access Layer)。其功能主要是负责数据库的访问。简单地说就是实现对数据表的Select(查询)、Insert(插入)、Update(更新)、Delete(删除)等操作。

1、数据量总大小,一个极其放不下
2、数据索引,B+Tree,一个机器内存放不下
3、访问量(读写混合)一个实例不能承受

Memcached缓存+MySQL+垂直拆分

这里写图片描述
1、利用缓存技术来缓解数据库的压力
2、优化数据库结构和索引

比较流行的是通过文件缓存来缓解数据库压力,但是当访问量继续增大的时候,多台web机器通过文件缓存不能共享,大量的小文件缓存也带来了比较高的IO压力。

MySQL主从读写分离

这里写图片描述
Memcache只能缓解数据库的读写压力。读写集中在一个数据库上让数据库不堪重负,大部分网站开始使用主从复制技术达到读写分离,以提高读写性能和读库的可扩展性。形成了MySQL的master-slave模式

分库分表+水平拆分+MySQL

这里写图片描述
在memcached的高速缓存和MySQL主从复制,读写分离的基础之上,主库写的压力出现瓶颈,二数据量持续猛增

表锁和行锁,行锁就是锁一张表中的某一行,并发性更高,表锁就是锁一张表,并发性差,由于MyISAM使用表锁,在高并发下出现严重的锁问题,大量的高并发MySQL应用开始使用InnoDB引擎代替MyISAM。

使用分库分表缓解写压力和数据增长的扩展问题。业务相关的/耦合的分在一块,分表举例假如有9000w数据信息,分表就是1-3000w放在1号库,3001-6000w放在2号库,6001-9000w放在3号库

MySQL扩展性瓶颈

MySQL数据库经常存储一些大文本字段,导致数据库表非常的打,在做数据库回复的时候会非常的漫,不容易快速恢复,关系型数据库很强大,但不能很好的应付所有应用场景,MySQL扩展性差,大数据下IO压力大,表结构更改困难。

为什么用NoSQL

用户的个人信息,社交网络,地理位置,用户生成的数据和用户操作日志的成倍增加,SQL数据库已经不适合。例如SQL数据库很难表达“哥哥的嫂子的二姨的叔叔”这种复杂的人际关系

NoSQL是什么

NoSQL(Not Only SQL)不仅仅是SQL,泛指非关系型的数据库,这些类型的数据存储不需要固定的模式,无需多余操作就可以横向扩展。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值