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

相关推荐
孤雪心殇2 小时前
简单易懂,解析Go语言中的Map
开发语言·数据结构·后端·golang·go
小突突突4 小时前
模拟实现Java中的计时器
java·开发语言·后端·java-ee
web137656076434 小时前
Scala的宝藏库:探索常用的第三方库及其应用
开发语言·后端·scala
闲猫4 小时前
go 反射 interface{} 判断类型 获取值 设置值 指针才可以设置值
开发语言·后端·golang·反射
LUCIAZZZ5 小时前
EasyExcel快速入门
java·数据库·后端·mysql·spring·spring cloud·easyexcel
Asthenia04125 小时前
依托IOC容器提供的Bean生命周期,我们能在Bean中做些什么?又能测些什么?
后端
Ase5gqe6 小时前
Spring中的IOC详解
java·后端·spring
小万编程6 小时前
基于SpringBoot+Vue奖学金评比系统(高质量源码,可定制,提供文档,免费部署到本地)
java·spring boot·后端·毕业设计·计算机毕业设计·项目源码
南雨北斗6 小时前
ThinkPHP6控制器方法返回的 Content-Type类型
后端
CryptoRzz7 小时前
springboot接入方式对接股票数据源API接口
后端