Mysql面试题总结

1. 背景

mysql作为最常用的中间件,还是有很多地方指导费学习的,看这些面试题是要理解的去记忆,然后看看mysql相关的书籍,就可以触类旁通了

2. 面试题

2.1 mysql 高度为3的b+ 树能存储多少数据

索引页存放的是索引值 + 指针,mysql 设计者为了避免每条数据都从磁盘进行读取,设计了页结构 用于磁盘和内存之间的交互,分为索引页和数据页
一个页16KB,磁盘存储数据的最小单元是扇区,扇区512byte ,B+ 树的每个节点只有一个页么
高度为2的时候。一个根节点和若干个叶子节点,根节点的指针数 * 单个叶子结点的记录数就是存储的数据量,假设表单 主键id,bigint占用8byte,指针在mysql中6byte, 一个索引页用16 * 1024、 14 = 1170.索引页有1170个索引记录,假设一行数据1KB,一个页就是16行数据,1170 * 16 = 18720行记录
三层B+ 树, 1170 * 1170 * 16 得到千万级的数据,进行1到3次的IO就可以获取

2.2 update 语句是锁表还是锁行

where 命中索引就是锁行,否则锁表
测试语句

sql 复制代码
set  @@autocommit = 0;

select @@autocommit;

update user set name = 'dyw11' where age = 40;

commit;

alter table user add index idx_age(age)

2.3 mysql 表设计时间列用datetime还是timestamp

相关推荐
无籽西瓜a几秒前
【西瓜带你学设计模式 | 第十八期 - 命令模式】命令模式 —— 请求封装与撤销实现、优缺点与适用场景
java·后端·设计模式·软件工程·命令模式
woniu_maggie1 分钟前
SAP CPI配置相关
后端
浪客川5 分钟前
【百例RUST - 008】枚举
开发语言·后端·rust
李日灐8 分钟前
<3>Linux 基础指令:从时间、查找、文本过滤到 .zip/.tgz 压缩解压与常用热键
linux·运维·服务器·开发语言·后端·面试·指令
Bernard02159 分钟前
给普通人的 AI 黑话翻译手册:一文看懂 LLM、RAG、Agent 到底是什么
前端·后端
希望永不加班9 分钟前
Spring AOP 核心概念:切面、通知、切点、织入
java·数据库·后端·mysql·spring
泰式大师10 分钟前
# 为什么我认为 Hermes 需要说明 self-evolution 的设计来源
后端
胖纳特11 分钟前
Seafile 文件预览增强方案:集成 BaseMetas Fileview 突破格式限制
前端·后端
fliter12 分钟前
Rust这四个问题,从新手到专家都在被折磨
后端
CodeSheep17 分钟前
同事偷偷给我介绍私活,说1万报酬全给我,结果甲方私下告诉我说,同事在当中白拿了2万,我觉得被耍了,媳妇却让我要知足,说我一点不亏
前端·后端·程序员