2026-03-27 04:30:47
MySQL八股文连环45问,全解答
第一股 基础篇
1.1. 请简述MySQL数据库的优点?
1.2. 说一说三个范式?
第一范式(1NF):确保每列都保持原子性,即列中的值是不可再分的最小数据单元。
第二范式(2NF):在1NF的基础上,要求数据库表中的每个非主属性都完全依赖于主键,而不能依赖于主键的一部分。
第三范式(3NF):在2NF的基础上,要求非主属性不传递依赖于主键,即每个非主属性都直接依赖于主键,而不是通过其他非主属性间接依赖于主键。
1.3. 事务的四大特性(ACID)介绍一下?
原子性(Atomicity):事务是一个不可分割的工作单位,事务中的操作要么全部完成,要么全部不执行。
一致性(Consistency):事务在执行前后,数据库都必须处于一致性状态。
隔离性(Isolation):并发的事务之间不会互相干扰,一个事务的中间状态对其他事务是不可见的。
持久性(Durability):一旦事务提交,则其所做的修改就会永久保存到数据库中,即使系统崩溃也不会丢失。
1.4. 在 Linux 下安装MySQL有哪几种方式?
1.5. 为什么升级 MySQL,升级前注意事项?
1.6. 存储引擎如何选择?
1.7. 事务隔离级别有哪些?
第二股 SQL篇
2.1 简述下SQL及分类?
2.2 drop、delete与truncate的区别是什么?
DROP:用于删除整个表或数据库,并释放其占用的空间。
DELETE:用于删除表中的记录,但保留表结构,并可以触发DELETE触发器。
TRUNCATE:用于删除表中的所有记录,但保留表结构,不触发DELETE触发器,且比DELETE更快。
2.3 MySQL六种关联查询是什么?
2.4 MySQL中 in 和 exists 区别?
IN:用于检查一个值是否在一组值中,通常用于子查询中。
EXISTS:用于检查子查询是否返回任何行,如果返回则条件为真。
2.5 基于MySQL简述下SQL的生命周期
(由于篇幅限制,以下仅简要列出各股后续问题的答案要点)
第三股 运维篇
3.1 MySQL数据类型
3.2 MySQL约束
3.3 索引设计原则
3.4 存储过程及其优点
3.5 MySQL定时任务(event)
第四股 体系架构
4.1 MySQL体系架构
4.2 参数文件位置及配置
4.3 参数持久化
4.4 socket及登录
4.5 MySQL表结构文件
4.6 错误日志及慢查询日志配置
4.7 Redo与Binlog区别
第五股 备份恢复篇
5.1 MySQL备份方式
5.2 PXB备份
5.3 表级别误操作工具
5.4 常用备份工具
5.5 备份计划制定
5.6 备份恢复失败处理
5.7 数据表损坏修复
第六股 高可用篇
6.1 主从复制作用及解决问题
6.2 读写分离解决方案
6.3 MySQL GTID
6.4 分库分表和表分区区别
6.5 MySQL中间件
6.6 分库分表标准及类型
第七股 性能优化篇
7.1 主键使用自增ID还是UUID
7.2 优化子查询
7.3 优化慢查询
7.4 Explain扫描方式
第八股 故障处理篇
8.1 忘记MySQL root密码
8.2 Binlog导致磁盘满
8.3 无法创建函数
以上是对MySQL八股文连环45问的简要解答,涵盖了MySQL的基础、SQL、运维、体系架构、备份恢复、高可用、性能优化和故障处理等方面的内容。