MySQL面试题及答案,2025最新整理

文章目录

  • 前言
  • 1.InnoDB 与 MyISAM 在事务和索引方面有哪些主要区别?
  • 2.简述 MySQL 的事务隔离级别及其对并发问题的解决情况?
  • 3.在使用 MySQL 索引时,如何避免索引失效,提高查询效率?


前言

本文围绕 MySQL面试题及答案,涵盖数据库基础概念、存储引擎、事务、索引等多方面内容。数据库范式规范数据结构,常见存储引擎各有特点,事务具备 ACID 特性,索引可提升查询效率但有优缺点。此外,还涉及 SQL 优化、大表处理、并发问题及解决等,为 MySQL 知识学习与面试准备提供全面参考。


MySQL面试题及答案下载链接https://pan.quark.cn/s/ecd5ec624c84

超详细 MySQL 8.0.41 安装教程(附安装包)https://blog.csdn.net/2501_91193507/article/details/147006634

1.InnoDB 与 MyISAM 在事务和索引方面有哪些主要区别?

  • 事务方面:InnoDB 支持事务,每一条 SQL 语言默认封装成事务自动提交,这可能影响速度,适合将多条 SQL 放在 begin 和 commit 之间组成事务;MyISAM 不支持事务。
  • 索引方面:InnoDB 是聚集索引,数据文件和索引绑在一起,必须有主键,辅助索引查询需先查主键再查数据,主键不宜过大;MyISAM 是非聚集索引,数据文件分离,索引保存数据文件指针,主键索引和辅助索引独立。InnoDB 不保存表的具体行数,执行select count(*)需全表扫描;MyISAM 用变量保存表行数,执行该操作速度快。此外,InnoDB 不支持全文索引,MyISAM 支持。
    在这里插入图片描述

2.简述 MySQL 的事务隔离级别及其对并发问题的解决情况?

  • READ - UNCOMMITTED(读取未提交):最低隔离级别,允许读取未提交的数据变更,会导致脏读、幻读或不可重复读。
  • READ - COMMITTED(读取已提交):允许读取并发事务已提交的数据,可阻止脏读,但幻读或不可重复读仍可能发生。
  • REPEATABLE - READ(可重复读):MySQL InnoDB 存储引擎的默认隔离级别,对同一字段多次读取结果一致,可阻止脏读和不可重复读,InnoDB 通过 Next - Key Lock 锁算法避免幻读。
  • SERIALIZABLE(可串行化):最高隔离级别,事务依次逐个执行,可防止脏读、不可重复读以及幻读,但会影响并发性能。

3.在使用 MySQL 索引时,如何避免索引失效,提高查询效率?

  • 避免在 WHERE 子句中使用!=或<>操作符,否则引擎会放弃使用索引进行全表扫描。
  • 尽量不用OR连接条件,若使用会导致引擎放弃索引全表扫描,可考虑用union或union all替代(无重复数据时union all更好)。
  • 避免在 WHERE 子句中对字段进行表达式或函数操作,不要在=左边进行函数、算术运算等,否则系统可能无法正确使用索引。
  • 复合索引遵循最左前缀匹配原则,列类型为字符串时,查询要给值加引号,LIKE查询时%不能在前,表字段为NULL时无法使用索引。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/70.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GGML源码逐行调试(下)

目录 前言1. 简述2. 预分配计算图内存2.1 创建图内存分配器2.2 构建最坏情况的计算图2.3 预留计算图内存 3. 分词4. 模型推理与生成4.1 模型推理4.2 采样 结语下载链接参考 前言 学习 UP 主 比飞鸟贵重的多_HKL 的 GGML源码逐行调试 视频&#xff0c;记录下个人学习笔记&#x…

考研单词笔记 2025.04.12

aware a知道的&#xff0c;意识到的&#xff0c;警觉的 awareness n意识&#xff0c;了解&#xff0c;觉察 conscious a有意识的&#xff0c;意识到的&#xff0c;有意的&#xff0c;刻意的&#xff0c;神志清醒的&#xff0c;慎重的&#xff0c;关注的 unconscious a无意识…

2025蓝桥杯省赛C/C++研究生组游记

前言 至少半年没写算法题了&#xff0c;手生了不少&#xff0c;由于python写太多导致行末老是忘记打分号&#xff0c;printf老是忘记写f&#xff0c;for和if的括号也老是忘写&#xff0c;差点连&&和||都忘记了。 题目都是回忆版本&#xff0c;可能有不准确的地方。 …

巧用递归算法:破解编程难题的“秘密武器”

专栏&#xff1a;算法的魔法世界 个人主页&#xff1a;手握风云 目录 一、递归 二、例题讲解 2.1. 汉诺塔问题 2.2. 合并两个有序链表 2.3. 反转链表 2.4. 两两交换链表中的节点 2.5. Pow(x, n) 三、总结 一、递归 递归的概念 一个方法在执行过程中调用自身, 就称为递…

代码随想录算法训练营Day28 | Leetcode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯

代码随想录算法训练营Day28 | Leetcode 509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯 一、斐波那契数 相关题目&#xff1a;Leetcode509 文档讲解&#xff1a;Leetcode509 视频讲解&#xff1a;Leetcode509 1. Leetcode509. 斐波那契数 斐波那契数 &#xff08;通常…

CAD导入arcgis中保持面积不变的方法

1、加载CAD数据&#xff0c;选择面数据&#xff0c;如下&#xff1a; 2、加载进来后&#xff0c;右键导出数据&#xff0c;导出成面shp数据&#xff0c;如下&#xff1a; 3、选择存储路径&#xff0c;导出面后计算面积&#xff0c;如下&#xff1a; 4、与CAD中的闭合线面积核对…

备赛蓝桥杯-Python-考前突击

额&#xff0c;&#xff0c;离蓝桥杯开赛还有十个小时&#xff0c;最近因为考研复习节奏的问题&#xff0c;把蓝桥杯的优先级后置了&#xff0c;突然才想起来还有一个蓝桥杯呢。。 到目前为止python基本语法熟练了&#xff0c;再补充一些常用函数供明天考前再背背&#xff0c;算…

Matlab 汽车ABS的bangbang控制和模糊PID控制

1、内容简介 Matlab 197-汽车ABS的bangbang控制和模糊PID控制 可以交流、咨询、答疑 2、内容说明 略 摘要&#xff1a;本文旨在设计一种利用模糊控制理论优化的pid控制器&#xff0c;控制abs系统&#xff0c;达到对滑移率最佳控制范围的要求 &#xff0c;所提出的方案采用级联…

题目 2701: 蓝桥杯2022年第十三届决赛真题-取模(C/C++/Java组)

题目 2701: 蓝桥杯2022年第十三届决赛真题-取模&#xff08;C/C/Java组&#xff09; 时间限制: 3s 内存限制: 512MB 提交: 6633 解决: 1263 题目描述 给定 n, m &#xff0c;问是否存在两个不同的数 x, y 使得 1 ≤ x < y ≤ m 且 n mod x n mod y 。 输入格式 输入包含多…

蓝桥杯C/C++省赛/国赛注意事项及运行环境配置

大佬的蓝桥杯考前急救指南 对拍&#xff08;手动生成测试数据&#xff09;代码&#xff1a; #include <bits/stdc.h> // 包含所有标准库的头文件 using namespace std; // 使用标准命名空间int main() {srand(time(0)); // 设置随机数种子为当前时间&#xff0c;确保每次…

13、nRF52xx蓝牙学习(GPIOTE组件方式的任务配置)

下面再来探讨下驱动库如何实现任务的配置&#xff0c;驱动库的实现步骤应该和寄存器方式对应&#xff0c;关 键点就是如何调用驱动库的函数。 本例里同样的对比寄存器方式编写两路的 GPOITE 任务输出&#xff0c;一路配置为输出翻转&#xff0c;一路设 置为输出低电平。和 …

使用Apache POI(Java)创建docx文档和表格

1、引入poi 依赖组件 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-scratchpad</artifactId><version>4.0.0</version> </dependency> <dependency><groupId>org.apache.poi</groupId>&…