基本面试

本文涉及的产品
RDS MySQL DuckDB 分析主实例,基础系列 4核8GB
RDS Agent(兼容OpenClaw),2核4GB
RDS AI 助手,专业版
简介: 【8月更文挑战第3天】
  • 知道MySQL的锁机制吗?
  • 了解MySQL的锁吗?

类似的问题可以综合回答,介绍MySQL的五花八门的锁。

MySQL的锁机制非常丰富,以InnoDB引擎为例。首先,从锁的范围看,可以分为行锁和表锁;其次,从排它性来看,可以分为排它锁和共享锁;还有意向锁,结合排它性,可以分为排它意向锁和共享意向锁;还有三个重要的锁概念,记录锁、间隙锁和临键锁。记录锁,是指锁住某条记录;间隙锁,是锁住两条记录之间的位置;临键锁可以看成记录锁和间隙锁的组合情况。
还有一种分类是乐观锁和悲观锁,在数据库里使用乐观锁的话,本质是应用层面上的CAS操作。

先从大方向上解释清楚锁的根本特性,而不是深入去解释各种锁。根本特性是:锁是和索引、隔离级别密切相关的

在MySQL的InnoDB的引擎里,锁和索引、隔离级别都是有密切关系的。在InnoDB引擎里面,锁是依赖于索引来实现的。或者说,锁都是加在索引项上的,如果一个查询用到了索引,就会用行锁;如果没用到任何索引,就会用表锁,此外,在MySQL里面,间隙锁和临键锁都是只工作在可重复读这个隔离级别下的。

后续的追问:

  • 某一种锁的具体含义
  • 某一种锁的适用场景,注意意向锁
  • 怎么在数据库使用乐观锁,或者用乐观锁解决过什么问题
  • 有没有优化过锁,或是解决过死锁
  • 详细介绍记录锁、间隙锁和临键锁,也有可能问MySQL在可重复读的隔离级别下会不会有幻读问题?(在MySQL的可重复读隔离级别下,不会出现幻读问题。这是因为MySQL使用了临键锁来解决幻读问题,保证在可重复读隔离级别下事务执行过程中不会出现插入新数据导致的幻读情况。)

还是需要一些实际的锁优化案例来证明能力

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
11月前
|
关系型数据库 MySQL Java
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
字节面试: MySQL 百万级 导入发生的 “死锁” 难题如何解决?“2序4拆”,彻底攻克
|
存储 SQL 算法
MySQL面试精选:阿里双十一高并发扣减库存就一行SQL语句搞定,Nice!!!
MySQL面试精选:阿里双十一高并发扣减库存就一行SQL语句搞定,Nice!!!
|
SQL 运维 分布式计算
【阿里数据库面试题解】MySQL高可用原理(上)
在一个主备关系中,每个备库接收主库的binlog并执行。 正常情况下,只要主库执行更新生成的所有binlog,都可以传到备库并被正确执行,备库就能达到跟主库一致的状态,这就是最终一致性。
244 0
【阿里数据库面试题解】MySQL高可用原理(上)
|
SQL 关系型数据库 MySQL
【阿里最新数据库面试题】MySQL主从一致性(上)
为什么备库执行了binlog就可以跟主库保持一致?
300 0
【阿里最新数据库面试题】MySQL主从一致性(上)
|
SQL 关系型数据库 MySQL
【阿里最新数据库面试题】MySQL主从一致性(下
为什么备库执行了binlog就可以跟主库保持一致?
271 0
【阿里最新数据库面试题】MySQL主从一致性(下
|
存储 算法 NoSQL
阿里面试官:设计个MySQL的Hash索引吧?
阿里面试官:设计个MySQL的Hash索引吧?
301 0
阿里面试官:设计个MySQL的Hash索引吧?
|
SQL 存储 安全
面试官:MySQL 中的 3 大日志是指哪些?面试必问
日志是 mysql 数据库的重要组成部分,记录着数据库运行期间各种状态信息。mysql日志主要包括错误日志、查询日志、慢查询日志、事务日志、二进制日志几大类。 作为开发,我们重点需要关注的是二进制日志( binlog )和事务日志(包括redo log 和 undo log ),本文接下来会详细介绍这三种日志。
489 0
面试官:MySQL 中的 3 大日志是指哪些?面试必问
ADB课后测试9
ADB课后测试9
217 0
|
存储 关系型数据库 MySQL
【阿里年薪百万数据库面试】MySQL会丢数据吗?(上)
在业务高峰期临时提升性能的方法。 WAL机制保证只要redo log和binlog保证持久化到磁盘,就能确保MySQL异常重启后,数据可以恢复。
316 0
|
12天前
|
人工智能 自然语言处理 文字识别
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考
Qwen3.7-Max是阿里云百炼面向智能体时代推出的新一代旗舰模型,对标GPT-5.5、Claude Opus 4.7等闭源旗舰。该模型支持百万级token上下文窗口,具备顶级推理能力、多模态搜索与视觉理解增强、流式输出低延迟响应等核心优势,覆盖编程、办公、长周期自主执行等复杂场景。同时支持OpenAI接口兼容,便于系统快速迁移。用户可通过Token Plan团队或节省计划等订阅方式灵活调用,适合企业级高要求场景使用。
4692 23
阿里云百炼Qwen3.7-Max简介:能力、优势、支持订阅计划参考

热门文章

最新文章