本文最后更新于77 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com
第十三天第一部分:MySQL
今天:
不是学 SQL。
而是:
建立 MySQL 本质理解。
1)MySQL 是什么
一句话:
关系型数据库。
特点:
表结构固定
事务强一致性
适合核心业务
2)MySQL 最适合什么
记:
“强事务”
例如:
订单
支付
库存
银行
用户账户
因为:
它强调:
ACID(事务的性质):
原子性:
要么全部执行成功要么就全部回滚
🌟:要么全部成功要么全部失败不留下半成品
一致性: 在一个事务的前后过程中会有着保持数据不发生变化的特性
🌟:数据一致而不会变化,符合规则不会乱套
隔离性:
多个事务同时执行的时候不会相互影响而是会各自执行,相互独立
🌟:同时并发执行的时候不会出故障,可以支持多个用户的同时的执行事务
持久性:
事务一旦提交,那么这个修改将永久生效,即使是宕机也仍然存在!
🌟:提交就永久保存住,而不会出现数据的丢失,只要提交就在,不会会因为断电而产生重大的事故
3)复习核心知识点
今天重点回顾:
索引
本质:
加速查询
B+Tree
本质:
数据库查找结构
事务
本质:
一组操作要么都成功
要么都失败
三次握手
为什么数据库连接需要 TCP。
四、第二部分:MongoDB 复习
今天重点:
MongoDB 为什么存在。
1)MongoDB 本质
一句话:
文档型 NoSQL 数据库。
特点:
结构灵活
适合快速迭代
适合高并发
2)MongoDB 为什么适合互联网
因为:
互联网:
字段变化特别快。
例如:
今天:
用户:
name
age
明天:
又加:
avatar
tags
vip_level
MySQL:
改表很麻烦。
MongoDB:
直接存。
3)重点复习
Embedding vs Referencing
引用和嵌入
这是核心。
Embedding
一锅炖
适合:
总是一起查的数据
Referencing
分开存
适合:
大量数据
高扩展
4)MongoDB 副本集(Replica Set)
今天重点理解:
本质
MongoDB 的高可用方案
结构:
Primary
Secondary
Secondary
Primary
负责:
写
Secondary
负责:
复制
类似 Redis 主从
但:
MongoDB:
更强调:
自动选举。
五、第三部分:Redis 主从复制
今天:
重点彻底理解:
“Redis 怎么同步数据”
1)Redis 为什么要主从
因为:
单机扛不住
2)Redis 结构
Master
↓
Slave
3)第一次复制
全量复制
过程:
Master:
BGSAVE
生成:
RDB。
Slave:
接收整个数据。
然后:
同步缓冲区命令。
4)后续复制
增量复制
Master:
执行:
SET name zhangsan
Slave:
也同步执行。
5)PSYNC
本质:
断点续传。
offset
本质:
同步进度条
backlog
本质:
最近命令缓存区
六、第四部分
三大数据库世界观
这一部分:
今天必须真正形成。
MySQL
特点:
强一致性
强事务
结构固定
适合:
核心业务
MongoDB
特点:
灵活
高扩展
文档模型
适合:
互联网业务
内容系统
Redis
特点:
超快
内存数据库
适合:
缓存
热点数据
高并发
七、今天真正建立的能力(核心)
今天重点:
不是:
记命令
而是:
“数据库架构感觉”
以后:
你脑子里应该开始形成:
用户请求
↓
Nginx
↓
Java/Go
↓
Redis(缓存)
↓
MySQL(核心数据)
↓
MongoDB(灵活数据)