《MySQL 是怎样运行的》学习笔记

本文介绍了MySQL的工作流程,包括服务器处理客户端请求的步骤,如线程池、查询优化和存储引擎。重点讲解了InnoDB的页、行格式和字符集,特别是行溢出数据的情况,以及VARCHAR的最大存储限制。对于数据库管理员和Java程序员来说,是一篇深入理解MySQL运行原理的宝贵资源。
摘要由CSDN通过智能技术生成

初识MySQL

服务器处理客户端请求

1. 服务器会维护线程池,为每个客户端连接分配一个线程,线程数可以动态配置

2. 解析优化

  • 查询缓存。从MySQL 5.7.20开始,不推荐使用查询缓存,并在MySQL 8.0中删除
  • 查询优化。对SQL语句做一些优化,如外连接转换为内连接、表达式简化、子查询转为连接;可以使用EXPLAIN语句来查看某个语句的执行计划

3. 存储引擎

最常用的就是InnoDB和MyISAM

字符集

1. utf8字符集表示一个字符需要使用1~4个字节,
mysql中使用的utf8是阉割过的utf8mb3,使用1~3个字节表示字符

2. 字符集的设置会影响char,varchar占用空间大小。因为char(10)指的是字符长度为10,而不是10字节

InnoDB记录存储结构

页是磁盘和内存之间交互的基本单位,页的大小一般为 16 KB

一次最少从磁盘中读取16KB的内容到内存中,一次最少把内存中的16KB内容刷新到磁盘中

行格式

  • Compact

默认格式

为什么变长字段和null要逆序?

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值