导读:本期聚焦于小伙伴创作的《MySQL基础面试题有哪些?DBA备考必看的15道核心题目整理》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《MySQL基础面试题有哪些?DBA备考必看的15道核心题目整理》有用,将其分享出去将是对创作者最好的鼓励。

MySQL作为当前最流行的关系型数据库之一,是众多企业后端系统的核心存储组件,DBA岗位面试中对MySQL基础知识的考察占比极高,掌握核心考点能有效提升求职竞争力。

MySQL基础面试题有哪些?DBA备考必看的15道核心题目整理

一、数据库基础概念类题目

1. 请说明关系型数据库和非关系型数据库的核心区别

关系型数据库基于关系模型设计,数据存储在二维表中,表与表之间通过外键建立关联,支持ACID事务特性,适合存储结构化数据,典型代表有MySQL、PostgreSQL。非关系型数据库不依赖表结构,存储格式灵活,包括键值对、文档、列存储等多种类型,扩展性更强,适合处理非结构化或半结构化数据,典型代表有Redis、MongoDB。

2. MySQL的存储引擎InnoDB和MyISAM有什么差异

两者核心差异如下:

对比维度InnoDBMyISAM
事务支持支持ACID事务,支持提交、回滚、崩溃恢复不支持事务
锁机制支持行级锁,并发性能更好仅支持表级锁,高并发下性能较差
外键支持支持外键约束不支持外键
索引类型聚簇索引,主键索引叶子节点存储整行数据非聚簇索引,索引叶子节点存储数据行地址
适用场景写操作多、需要事务保障的业务场景读操作多、不需要事务的静态数据存储场景

二、SQL语句与查询类题目

3. 如何查询表中重复的记录

可以通过分组统计的方式筛选重复数据,示例代码如下:

-- 查询user表中username重复的所有记录
SELECT *
FROM user
WHERE username IN (
    SELECT username
    FROM user
    GROUP BY username
    HAVING COUNT(*) > 1
);

4. 说一下左连接、右连接、内连接的区别

内连接(INNER JOIN)只返回两个表中匹配关联条件的记录;左连接(LEFT JOIN)返回左表所有记录,右表没有匹配则对应字段显示为NULL;右连接(RIGHT JOIN)返回右表所有记录,左表没有匹配则对应字段显示为NULL。

5. 如何优化慢查询SQL

优化步骤通常包括:先通过慢查询日志定位执行时间过长的SQL语句,使用EXPLAIN命令分析执行计划,查看是否使用了索引、扫描行数是否过多,再根据分析结果调整索引、改写SQL逻辑,避免全表扫描。

三、索引与性能优化类题目

6. 索引的工作原理是什么,为什么能提升查询速度

索引本质是排好序的数据结构,MySQL中InnoDB默认使用B+树作为索引结构。B+树的非叶子节点只存储索引键和子节点指针,叶子节点存储索引键和对应数据地址(或聚簇索引下的整行数据),且叶子节点之间通过双向链表连接。查询时不需要全表扫描,只需要从根节点向下匹配,快速定位到目标数据,时间复杂度从全表扫描的O(n)降低到O(log n)。

7. 什么情况下索引会失效

常见索引失效场景包括:对索引字段使用函数或运算、查询条件中使用不等于(!=、<>)、like查询以通配符开头(如LIKE '%test')、查询条件中字段类型不匹配发生隐式转换、使用OR连接条件且部分字段没有索引、联合索引没有遵循最左前缀原则。

8. 联合索引的最左前缀原则是什么

联合索引是按照索引字段的创建顺序排序的,查询时只有条件中包含联合索引最左侧的字段,索引才会生效。例如创建联合索引idx_a_b_c(a,b,c),那么查询条件包含a、包含a和b、包含a和b和c时都会使用索引,只包含b或者只包含c则不会触发索引。

四、事务与锁机制类题目

9. 请解释ACID四个特性的含义

原子性(Atomicity)指事务中的所有操作要么全部完成,要么全部回滚,不会只执行部分操作;一致性(Consistency)指事务执行前后数据库的状态符合所有约束规则,数据保持逻辑上的正确性;隔离性(Isolation)指多个事务并发执行时,一个事务的执行不会被其他事务干扰;持久性(Durability)指事务提交后,对数据的修改会永久保存到数据库中,即使系统故障也不会丢失。

10. MySQL的事务隔离级别有哪些,分别能解决什么问题

MySQL支持四种事务隔离级别:读未提交(READ UNCOMMITTED)最低,会出现脏读、不可重复读、幻读问题;读已提交(READ COMMITTED)能解决脏读问题,仍会出现不可重复读和幻读;可重复读(REPEATABLE READ)是MySQL默认隔离级别,能解决脏读和不可重复读问题,InnoDB引擎通过间隙锁可以解决幻读;串行化(SERIALIZABLE)最高,所有事务串行执行,能解决所有并发问题,但性能最低。

11. InnoDB的锁类型有哪些

按照锁的粒度分为:共享锁(S锁,读锁,多个事务可以同时持有,用于读取数据)、排他锁(X锁,写锁,只有一个事务可以持有,用于修改数据)、意向锁(包括意向共享锁IS、意向排他锁IX,用于快速判断表中是否有行被加锁,提升锁冲突判断效率)、间隙锁(锁定索引记录之间的间隙,防止其他事务插入数据,解决幻读问题)、临键锁(行锁+间隙锁的组合,InnoDB默认的行锁算法)。

五、运维与进阶类题目

12. MySQL主从复制的原理是什么

主从复制分为三个步骤:主库把数据变更记录到二进制日志(binlog)中;从库的IO线程连接主库,读取主库的binlog事件并写入到自己的中继日志(relay log)中;从库的SQL线程读取中继日志中的事件,在从库上重放执行,完成数据同步。

13. 如何备份和恢复MySQL数据库

常用的备份方式包括逻辑备份和物理备份。逻辑备份可以使用mysqldump工具,示例备份命令如下:

-- 备份test数据库到test_backup.sql文件
mysqldump -u root -p test > test_backup.sql

恢复时可以使用mysql命令导入备份文件:

-- 将备份文件导入到test数据库
mysql -u root -p test < test_backup.sql

14. 什么是MVCC,它的作用是什么

MVCC是多版本并发控制机制,InnoDB通过它实现非锁定读,提升并发性能。核心逻辑是为每行数据保存多个历史版本,事务读取数据时根据版本号判断,只读取自己事务开始前已经提交的数据版本,不需要加锁就可以避免读到其他事务未提交的数据,解决了读写冲突问题。

15. 如何监控MySQL的运行状态

可以通过多种途径监控:使用SHOW STATUS命令查看数据库运行指标,比如连接数、查询次数、慢查询数量;使用SHOW PROCESSLIST查看当前正在执行的线程状态;开启慢查询日志统计执行时间过长的SQL;也可以通过Prometheus+Grafana等监控工具对接MySQL的监控指标,实现可视化监控和告警。

MySQL数据库管理SQL查询索引优化事务处理修改时间:2026-06-02 17:28:18

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。