MySQL 面试题共73篇

MySQL 是主流的开源关系型数据库管理系统,是后端开发者必备的技能。MySQL 面试的重点包括数据表设计、SQL 查询、索引优化、事务管理、锁机制、存储引擎(如 InnoDB)、高并发处理和性能调优等。

面试题:MySQL 在设计表(建表)时需要注意什么?

在设计 MySQL 表时,合理的表结构设计对数据库的性能、可维护性和扩展性至关重要。以下是一些需要注意的关键点: 1. 选择合适的存储引擎 InnoDB: 支持事务、行级锁、外键约束。 适合大多数场景...
程序百科的头像-程序百科程序百科49天前
02414

面试题:从 MySQL 获取数据,是从磁盘读取的吗?(buffer pool)

从 MySQL 获取数据时,不一定直接从磁盘读取,而是优先从 Buffer Pool 中读取。Buffer Pool 是 InnoDB 存储引擎的一个重要内存区域,用于缓存数据和索引页,从而减少磁盘 I/O,提高查...
程序百科的头像-程序百科程序百科39天前
0226

面试题:MySQL 中的回表是什么?

1. 什么是回表? 回表是指在使用**二级索引(非主键索引)**进行查询时,MySQL 需要根据索引中存储的主键值,回到主键索引(聚簇索引)中查找完整的数据行。这个过程称为回表。 2. 回...
程序百科的头像-程序百科程序百科38天前
02810

面试题:什么是 Write-Ahead Logging (WAL) 技术?它的优点是什么?MySQL 中是否用到了 WAL?

什么是 Write-Ahead Logging (WAL) 技术? Write-Ahead Logging (WAL) 是一种用于保证数据库事务持久性和一致性的技术。其核心思想是:在对数据库进行修改之前,先将这些修改记录到日志中...
程序百科的头像-程序百科程序百科39天前
0335

面试题:MySQL 中 int(11) 的 11 表示什么?

在 MySQL 中,INT(11) 是一种常见的整数类型定义方式。这里的 11 经常被误解为存储的位数或取值范围,但实际上它的含义与此不同。以下是详细解释: 1. INT(11) 中的&n...
程序百科的头像-程序百科程序百科39天前
0406

面试题:在 MySQL 中,你使用过哪些函数?

在 MySQL 中,有许多内置函数可以用于数据处理、字符串操作、日期时间操作、数学计算等。以下是一些常用的函数及其示例代码: 1. 字符串函数 CONCAT(): 连接字符串。 SUBSTRING(): 提取子字符串...
程序百科的头像-程序百科程序百科39天前
0298

面试题: MySQL 中长事务可能会导致哪些问题?

在 MySQL 中,长事务(长时间运行的事务)可能会引发一系列问题,尤其是在高并发、大数据量的场景下。以下是长事务可能导致的主要问题: 1. 锁争用与阻塞 问题描述: 长事务可能会长时间持...
程序百科的头像-程序百科程序百科38天前
02714

面试题:MySQL 三层 B+ 树能存多少数据?

在 MySQL 中,B+ 树是一种常用的索引结构,通常用于 InnoDB 存储引擎。B+ 树的层数决定了其能存储的数据量。要计算三层 B+ 树能存储多少数据,需考虑以下几个因素: 1. B+ 树的结构 根节点...
程序百科的头像-程序百科程序百科39天前
0255

面试题:对数据库进行分库分表可能会引发哪些问题?

分库分表是解决单库单表数据量过大、性能瓶颈问题的常用方案,但也会引入一些复杂性和潜在问题。以下是分库分表可能引发的问题及其解决方案: 一、分库分表引发的问题 1. 数据一致性问题 ...
程序百科的头像-程序百科程序百科39天前
04810

面试题:MySQL InnoDB 引擎中的聚簇索引和非聚簇索引有什么区别?

在 MySQL 的 InnoDB 存储引擎中,索引分为聚簇索引(Clustered Index)和非聚簇索引(Secondary Index,也称为二级索引)。它们在存储结构、数据访问方式和性能特点上有显著的区别。 1. 聚...
程序百科的头像-程序百科程序百科38天前
0267