MySQL 精选 60 道面试题(含答案)
发布日期:2025-04-16 00:27:51
浏览次数:58
分类:精选文章
本文共 1819 字,大约阅读时间需要 6 分钟。
MySQL 面试题汇总
金三银四到了,给大家整理一些数据库必知必会的面试题。这些问题涵盖了基础、索引、日志、数据恢复、主从备份等多个方面,适合正在准备数据库相关工作面试的同学。
基础相关
关系型和非关系型数据库的区别?
关系型数据库的优点:
- 易于理解,采用关系模型组织数据。
- 数据一致性高,更新开销小,支持复杂查询。
非关系型数据库(NOSQL)的优点:
- 无需 SQL 层解析,读写效率高。
- 支持多种数据类型存储,如图片、文档等。
- 扩展性强,适合高并发场景。
MySQL 语句执行的步骤?
- 客户端请求 → 连接器验证用户权限 → 查询缓存 → 分析器解析 SQL → 优化器选择执行方案 → 执行器执行 SQL → 引擎返回结果。
MySQL 使用索引的原因?
- 根本原因:类似书的目录,提高查询效率。
- 扩展:创建唯一性索引,避免排序和临时表,减少随机 IO。
索引的三种常见底层数据结构?
- 哈希表:适用于等值查询,范围查询不佳。
- 有序数组:静态存储,范围查询性能好,但更新成本高。
- N 叉树:性能优点好,适合数据库引擎,支持范围查询。
MySQL 的索引类型及其作用?
- 主键索引(聚簇索引):叶子节点存整行数据。
- 非主键索引(二级索引):叶子节点存主键值。
MyISAM 和 InnoDB 实现 B 树索引的区别?
- InnoDB:叶子节点存数据,本身是索引文件。
- MyISAM:叶子节点存数据地址,索引文件与数据文件分离。
InnoDB 为什么设计 B+ 树索引?
- 考虑因素:优化查询性能,减少随机 IO。
- 选择 B+ 树:避免哈希索引的范围查询问题,树结构减少随机 IO。
覆盖索引和索引下推?
- 覆盖索引:减少搜索次数,提升查询性能。
- 索引下推:MySQL 5.6 引入的优化,减少回表次数。
哪些操作会导致索引失效?
- 模糊匹配、函数计算、隐式转换、OR 语句等。
字符串加索引的优化方法?
- 创建完整索引(空间占用大)、前缀索引(查询效率低)、倒序存储索引、创建 hash 索引。
日志相关
MySQL 的 change buffer 是什么?
- 缓存未刷盘的数据更新,减少磁盘 IO 操作。
MySQL 如何判断一行扫描数?
- 基于索引的区分度估算记录数。
MySQL 的 redo log 和 binlog 区别?
- redo log:循环写日志,crash 后恢复数据。
- binlog:追加写日志,用于主从复制。
为什么需要 redo log?
- 确保数据一致性,crash-safe。
redo log 的写入方式?
- 内存日志缓冲 → 写入磁盘 → 参数配置(延迟写、实时写)。
redo log 的执行流程?
- 更新数据 → 记录 redo log → 事务提交 → 写入磁盘。
binlog 的概念和作用?
- 归档日志,实现主从复制和数据恢复,但非 crash-safe。
两阶段提交的作用?
- 确保 redo log 和 binlog 一致性,防止数据丢失。
MySQL 如何恢复未刷盘的数据?
- 根据 redo log 和 binlog 的状态进行恢复。
WAL 技术的优点?
- 快速响应 SQL,防止数据丢失。
MySQL 主备同步的流程?
- 建立长链接、配置备库、启动复制线程、解析 binlog。
主备延迟的原因及解决方案?
- 性能差异、压力过大、大事务拆分。
多线程复制策略的意义?
- 提高复制速度,减少备库延迟。
MySQL 的并发链接和并发查询?
- 并发连接:线程数影响内存使用。
- 并发查询:CPU 核数限制,设置 innodb_thread_concurrency。
如何快速恢复误删数据?
- 使用备份和 binlog 恢复,重点配置 binlog_row_image=full。
MySQL 数据恢复工具的选择?
- mysqldump、xtrabackup、FLUSH LOGS。
如何处理大表查询不爆内存?
- 边读边发,InnoDB 的 LRU 算法。
临时表的用法和特性?
- session 独享,操作复杂,常用于计算逻辑。
存储引擎介绍(InnoDB、MyISAM、MEMORY)?
- InnoDB:事务安全,默认存储引擎。
- MyISAM:插入查询速度快,无事务。
- MEMORY:内存存储,查询速度快。
内存表的优缺点?
- 优点:快速访问;缺点:锁粒度问题,数据持久化问题。
主从备份相关
其他
如需进一步了解或补充内容,可以随时联系!
发表评论
最新留言
很好
[***.229.124.182]2026年06月11日 13时52分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php缓存查询函数
2023-03-01
php编写TCP服务端和客户端程序
2023-03-01
php编码规范
2023-03-01
PHP编码规范-PSR1、psr2 /psr3 psr4
2023-03-01
PHP编程效率的20个要点
2023-03-01
PHP网页缓存技术优点及代码
2023-03-01
PHP自动化测试(一)make test 和 phpt
2023-03-01
php自定义函数: 文件大小转换成智能形式
2023-03-01
php英语单词,php常用英语单词,快速学习php编程英语(6)
2023-03-01
PHP获取curl传输进度
2023-03-01
PHP获取IP所在地区(转)
2023-03-01
PHP获取IP的方法对比
2023-03-01
php获取json里面内容
2023-03-01
R2的版本由来
2023-03-01
PHP获取图片宽度高度、大小尺寸、图片类型、用于布局的img属性
2023-03-01
PHP获取当前文件的绝对路径
2023-03-01
PHP获取当前时间、时间戳的各种格式写法汇总
2023-03-01
PHP获取当前页面的完整URL
2023-03-01
php获取数据库中数据生成json,中文乱码问题的解决方案
2023-03-01