数据库高级视频学习

mysql高级
shk笔记:mysql笔记 512-526
码云笔记 mysql高级md

mysql-高级 github笔记

mysql-md推荐
mysql 部分笔记-半旧

mysql高级 别人笔记
------------------------------------------------d--------------
《MySQL45讲》基础篇总结

相关子查询讲解

mysql是怎么运行的笔记
mysql笔记以及博客都不错
MySQL系列专栏-掘金 不错

--------ddd—

58架构师 数据库文章
mysql文章-日志,mvcc等

MySQL索引的B+树到底有多高?

buffer pool
InnoDB 缓冲池LRU策略及关键特性
mysql buffer pool 详解

掘金文章 :

【图文详解】MySQL系列之redo log、undo log和binlog详解
面试中的老大难-mysql事务和锁,一次性讲清楚!
【图文动画详解原理系列】1.MySQL 索引原理详解
为什么MySQL InnoDB 存储引擎要用B+树做索引,而不用B树?

行溢出问题

数据库 一行最大字节65535 BYTE 个   用了varchar 2 Byte 记录 长字段长度 
varchar(65532)
	  65535=65532(可用)+2(2个字节的变长字段的长度)+1(1个字节null标识)
	 数据库 一行最大字节65535 BYTE 个,所以极限情况下,只一个字段 varchar
varchar(65533)  not null
	 65535=65533+2(2个字节的变长字段的长度)
	 utf8 一个字符3个字节
	 utf8mb4 一个字符 4个字节
create table varchardemo{
	c carchar(65532) # 65535 -2字节记录变长字段的长度-1NULL标识。
}charset=ascii row_format=compact;

create table varchardemo{
	c carchar(65533) not null # 65535 -2字节记录变长字段的长度
}charset=ascii row_format=compact;

因为一个页是16kb=16384Byte,而一个varchar(M) 最多可以存储65533个字节。这就出现了一个页面放不开了一条记录,这种现象称为行溢出
在compact和reduntant的行格式中,对于占用存储空间非常大的列,在记录真实数据处,只会存储一该列的一部分数据,把剩余的数据分散的存储在几个其他的页中,进行分页存储。 然后记录的真实数据处用20个字节存储指向这些页的地址。

一篇文章看懂mysql中varchar能存多少汉字、数字,以及varchar(100)和varchar(10)的区别

1.存储引擎概念

打比方说:一部电影有mp4,wmv,avi,flv...等格式。同样的一部电影在硬盘上有不同的存储格式,所占的空间与清晰程度也各不一样。

那么我们表里的数据存储在硬盘上,是如何存储的呢?

存储的方式也有很多种。

对于用户来说,同样一张表的数据,无论用什么引擎来存储,用户看到的数据都是一样的,

但对于服务器来说是有区别的。
数据库对同样的数据,有着不同的存储方式和管理方式,在mysql中,称为存储引擎。

redo刷盘策略

另外,InnoDB存储引擎有一个后台线程,每隔1秒,
就会把redo log buffer中的内容写到文件系统缓存 (page cache ),
然后调用刷盘操作。

数据库并发问题解决方案:

数据库高级视频学习_第1张图片
数据库高级视频学习_第2张图片

mysql 主从同步

数据库高级视频学习_第3张图片

mysql b-tree 扇出

数据库高级视频学习_第4张图片

mysql 慢查询

MySQL慢查询,一口从天而降的锅!学习


你可能感兴趣的:(数据库,数据库)