首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
《MySQL45讲》读书笔记
Createsequence
创建于2024-05-14
订阅专栏
极客时间《MySQL45讲》专栏的读书笔记 ~
等 1 人订阅
共13篇文章
创建于2024-05-14
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
《MySQL45讲》读书笔记(一):三大日志概述
1.redo log redo log 又叫重做日志,提供的是数据丢失后的前滚操作。 redo log 是 innodb 引擎独有的日志,使用了 WAL 技术(Write-Ahead Logging)
《MySQL45讲》读书笔记(二):日志的文件是如何保证不丢失的
1.持久化的过程 从总的来看,日志一般分为两部分:内存中易遗失的缓存日志和磁盘上持久化的日志文件。 一次事务中,日志先被写入内存,存放在 cache/buffer 中,然后事务结束以后准备持久化:先写
《MySQL45讲》读书笔记(三):内存数据刷盘机制
1.mysql 的刷盘机制 而之前提到过,mysql 使用了 WAL 技术,即更新的时候先更新内存中的数据,然后必要的时候再将内存中的数据刷入磁盘。我们把内存中这些被修改过,跟磁盘中的数据页不一致的数
《MySQL45讲》读书笔记(四):索引
1.Innodb索引模型 1.1.主键/非主键索引的区别 每个索引在Innodb中都是一颗B+树,其中根据索引叶子节点的不同,分为主键索引和非主键索引。 我们可以看到: 主键索引将索引和整行的数据都放
《MySQL45讲》读书笔记(五):数据库表空间的回收
1.表数据的存放位置 表数据既可以存在共享表空间里,也可以是单独的文件。这个行为是由参数 innodb_file_per_table 控制的: OFF :表的数据放在系统共享表空间,即跟数据字典放在一
《MySQL45讲》读书笔记(六):数据库事务概述
1.事务的启动方式 mysql 主要有两种事务的启动方式: begin 或 start transaction显式启动事务。对应的提交语句是 commit ,回滚是 rollback set auto
《MySQL45讲》读书笔记(七):全局锁,表锁,行锁,间隙锁
1.全局锁 1.1.概述 全局锁就是对整个数据库实例加锁。通过使用 Flush tables with read lock(FTWRL)语句加锁,此后整个库都会处于只读状态,这时,其他线程的数据定义语
《MySQL45讲》读书笔记(八):间隙锁的加锁条件
1.间隙锁的加锁原则 间隙锁加锁的情况,包含了两个“原则”、两个“优化”和一个“bug”。 原则 1:加锁的基本单位是 next-key lock。即间隙锁+行锁(前开后闭区间)。 原则 2:查找过程
《MySQL45讲》读书笔记(九):关于元数据锁 online ddl插队问题
1.读写锁堵塞 前面在锁这块介绍了元数据锁(MDL 锁)。元数据锁是一种读写锁,他的读读不互斥,读写和写写是互斥的。因此我们参考下面的时序图: 现在等待队列中有四个 session 要获取锁: 由于
《MySQL45讲》读书笔记(十):count
1.count的查询过程 count() 函数用于查询数据的数量,不同的引擎有不同的实现。 在 MySAM 引擎会专门记录表的总数;而在 innodb 中,由于 MVCC 的原因,在统计数量的时候需要
《MySQL45讲》读书笔记(十一):join
1.Join的查询流程 假设我们有表 t1 和表 t2,他们都有字段 a,b,其中 t1 有 100条数据,而 t2 有1000条数据。 我们要执行这么一条sql: 执行流程就是会这样的: 先取出 t
《MySQL45讲》读书笔记(十二):order by
1.order by 的执行流程 1.1.全字段排序 假如此时有这么一张表: 现在要按姓名排序查询杭州1000个人的信息 这条 sql 的执行流程如下: 在内存中初始化 sort_buffer,放入
《MySQL45讲》读书笔记(十三):自增主键,自增锁
1.自增值的保存方式 我们前面提到过,自增主键的连续性使得表在空间上排列的更紧密,提高了空间利用率,避免了页分裂。实际上,自增主键大部分情况下可以保证连续性,但是也有例外的时候。 当我们创建表的时候,