mysql面试知识点及大厂面试题
需积分: 0 129 浏览量
更新于2023-03-17
收藏 1.28MB DOCX 举报
MySQL 面试知识点及大厂面试题
MySQL 是一个关系型数据库管理系统,广泛应用于各种行业和领域。作为一名 IT 行业大师,我将从存储引擎、锁机制、事务等方面详细剖析 MySQL 的知识点,并总结出大厂面试题的要点。
一、存储引擎
MySQL 提供了多种存储引擎,包括 MyISAM、InnoDB、MEMORY 等。其中,MyISAM 和 InnoDB 是两种最常用的存储引擎。
1.1、MyISAM
MyISAM 是 MySQL 5.5 之前的默认存储引擎。它具有以下特点:
* 只有表级锁,不支持行级锁
* 强调性能,每次查询具有原子性,执行速度比 InnoDB 类型更快
* 不提供事务支持
* 不支持外键
* 不支持崩溃后的安全恢复
1.2、InnoDB
InnoDB 是 MySQL 5.5 及以后的默认存储引擎。它具有以下特点:
* 支持行级锁和表级锁,默认为行级锁
* 提供事务支持,具有 commit 和 rollback 事务能力
* 支持外键
* 支持崩溃后的安全恢复,使用 redo log 实现
* 支持 MVCC(Multi-Version Concurrency Control),用于高并发事务,MVCC 比单纯的加锁更高效
二、锁机制
锁机制是数据库用来保证数据一致性和并发安全的机制。MySQL 的锁机制可以分为三种:
2.1、表级锁
表级锁就是对数据库中的表加锁,让整个表处于只读状态。
2.2、页级锁
页级锁就是对数据库中的表的页加锁,让整个页处于只读状态。
2.3、行级锁
行级锁就是针对数据表中行记录的锁。InnoDB 存储引擎的锁算法包括:
* Record lock:记录锁,单个行记录上的锁
* Gap lock:间隙锁,锁定一个范围,不包括记录本身
* Next-key lock:record+gap 临键锁,锁定一个范围,包含记录本身
三、事务
事务是逻辑上的一组操作,要么都执行,要么都不执行。事务具有四个特性:原子性、一致性、隔离性和持久性。
3.1、ACID 特性
* 原子性(Atomicity):事务是最小的执行单位,不允许分割。
* 一致性(Consistency):执行事务前后,数据完整性保持一致。
* 隔离性(Isolation):并发访问数据库时,一个事务在执行过程中不会被其他事务干扰。
* 持久性(Durability):一个事务被提交之后,它对数据库中数据的改变是永久的。
3.2、如何实现 ACID?
* MySQL InnoDB 引擎使用 redo log 保证事务的持久性,使用 undo log 来保证事务的原子性。
* MySQL InnoDB 引擎通过锁机制、MVCC 等手段来保证事务的隔离性。
四、并发事务的问题
4.1、脏读(Dirty read)
一个事务读取到了另一个事务还没有提交的数据。
4.2、丢失修改(Lost to modify)
一个事务覆盖了另一个事务已经提交的数据。
理解 MySQL 的存储引擎、锁机制和事务机制是非常重要的,它们是 MySQL 的核心组成部分,能够帮助开发者更好地使用 MySQL 数据库。
胜寒君
- 粉丝: 485
- 资源: 1
最新资源
- 【分析报告】-03-培训需求分析报告.docx
- 【分析报告】-02-培训需求调查分析报告.docx
- 【需求调查】-02-培训需求调查表.docx
- 【分析报告】-04-培训需求分析报告.docx
- 【分析报告】-01-年度培训需求调查分析报告.doc
- 【需求调查】-04-公司高层培训需求访谈提纲.docx.doc
- 【需求调查】-03-员工培训需求调查表.docx
- GPA使用K8S-Spark集群示例模型
- 【计划表】-02-公司年度培训计划表格.docx
- 【计划表】-01-公司年度培训计划表.docx
- 【计划表】-06-公司年度培训计划表.xlsx
- 【计划表】-05-年度员工教育培训计划表.docx
- 【计划表】-03-物业公司年度培训计划.docx
- 【计划表】-04-公司年度培训计划表.docx
- 【计划表】-08-年度培训计划表.xlsx.xls
- 【计划表】-10-公司年度培训计划表模板.xlsx