【面试宝藏】MySQL 面试题解析

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL面试题解析涵盖数据库范式、权限系统、Binlog格式、存储引擎对比、索引原理及优缺点、锁类型、事务隔离级别等。重点讨论了InnoDB与MyISAM的区别,如事务支持、外键和锁机制。此外,还提到了Unix时间戳与MySQL日期时间的转换,以及创建索引的策略。

MySQL 面试题解析

1. 数据库三大范式是什么?

  • 第一范式(1NF):确保每列的原子性,即每列不能再分。
  • 第二范式(2NF):在满足 1NF 的基础上,每个非主属性完全依赖于主键,即消除部分依赖。
  • 第三范式(3NF):在满足 2NF 的基础上,任何非主属性不依赖于其他非主属性,即消除传递依赖。

2. MySQL 有关权限的表都有哪几个?

MySQL 的权限系统主要依赖以下系统表:

  • user:存储用户的全局权限。
  • db:存储特定数据库的权限。
  • tables_priv:存储特定表的权限。
  • columns_priv:存储特定列的权限。
  • procs_priv:存储存储过程和函数的权限。

3. MySQL 的 Binlog 有几种录入格式?分别有什么区别?

MySQL 的 Binlog 有三种格式:

  • Statement(语句):记录执行的 SQL 语句。优点是日志量小,但在某些情况下可能无法精确重放。
  • Row(行):记录每行数据的变化。优点是可以精确重放,但日志量大。
  • Mixed(混合):结合了 Statement 和 Row 的优点。MySQL 会根据具体情况选择最合适的格式。

4. MySQL 存储引擎 MyISAM 与 InnoDB 的区别?

  • 事务支持:InnoDB 支持事务,MyISAM 不支持。
  • 外键:InnoDB 支持外键,MyISAM 不支持。
  • 表锁和行锁:InnoDB 支持行级锁,MyISAM 只支持表级锁。
  • 崩溃恢复:InnoDB 有自动崩溃恢复功能,MyISAM 需要手动修复。
  • 全文索引:MyISAM 支持全文索引,InnoDB 从 MySQL 5.6 开始支持。

5. 什么是索引?

索引是一种用于提高数据库查询速度的数据结构。它类似于书籍的目录,可以快速找到所需的数据。

6. 索引有哪些优缺点?

优点

  • 提高数据检索速度。
  • 加速表连接操作。
  • 加速排序和分组操作。
  • 在条件查询中,提高检索效率。

缺点

  • 占用磁盘空间。
  • 在插入、删除和更新数据时,可能需要重建索引,影响写入性能。

7. 存储引擎有哪几种类型?

MySQL 支持多种存储引擎,常见的有:

  • InnoDB:支持事务和外键,使用广泛。
  • MyISAM:不支持事务,但速度较快。
  • MEMORY:数据存储在内存中,速度快,但断电数据丢失。
  • ARCHIVE:用于存储大批量的历史数据,支持高效的插入操作,不支持索引。
  • CSV:数据以 CSV 格式存储,便于与外部程序交互。

8. MySQL 中有哪几种锁?

  • 表锁:锁住整张表。分为读锁和写锁。
  • 行锁:锁住单行数据。InnoDB 支持行级锁。
  • 页锁:锁住数据页。InnoDB 也支持页锁,但不常用。

9. MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?

  • 读未提交(Read Uncommitted):最低隔离级别,事务中的修改即使未提交,对其他事务也是可见的。
  • 读已提交(Read Committed):一个事务在提交前的修改对其他事务不可见。
  • 可重复读(Repeatable Read):事务在执行期间,看到的数据是一致的,即使其他事务进行了修改(默认隔离级别)。
  • 串行化(Serializable):最高隔离级别,事务完全串行化执行,避免了幻读。

10. CHAR 和 VARCHAR 的区别?

  • CHAR:定长字符类型,不足长度时会用空格补齐。适合存储定长数据。
  • VARCHAR:变长字符类型,存储的数据长度可变。适合存储可变长度的数据。

11. 主键和候选键有什么区别?

  • 主键(Primary Key):用于唯一标识表中的记录,每个表只能有一个主键,不能为空。
  • 候选键(Candidate Key):是唯一标识表中记录的属性集合,可以有多个候选键,其中一个可以作为主键。

12. 如何在 Unix 和 MySQL 时间戳之间进行转换?

  • Unix 时间戳转换为 MySQL 日期时间
    FROM_UNIXTIME(unix_timestamp)
    
  • MySQL 日期时间转换为 Unix 时间戳
    UNIX_TIMESTAMP(datetime)
    

13. MyISAM 表类型将在哪里存储,并且还提供其存储格式?

MyISAM 表的存储格式:

  • .frm 文件:存储表结构。
  • .MYD 文件:存储表数据。
  • .MYI 文件:存储表索引。

14. MySQL 里记录货币用什么字段类型好?

货币一般使用 DECIMAL 类型来存储,确保精度和防止舍入误差。例如:

DECIMAL(10, 2)

15. 创建索引时需要注意什么?

  • 选择合适的列:经常用于查询条件、排序和分组的列。
  • 避免过多的索引:每个索引都会占用空间和影响写入性能。
  • 复合索引:考虑创建复合索引,而不是多个单列索引。
  • 索引选择性:高选择性的列更适合作为索引。

版权声明

本文为博主原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接和本声明。

原文链接:CSDN

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
6天前
|
存储 NoSQL Java
【面试宝藏】Redis 常见面试题解析
Redis 是内存数据结构存储系统,用作数据库、缓存和消息中间件,支持字符串、哈希、列表等数据类型。它的优点包括高性能、原子操作、持久化和复制。相比 Memcached,Redis 提供数据持久化、丰富数据结构和发布/订阅功能。Redis 采用单线程模型,但通过 I/O 多路复用处理高并发。常见的面试问题涉及持久化机制、过期键删除、回收策略、集群和客户端等。
31 4
|
2天前
|
XML JSON Java
Android面试题 之 网络通信基础面试题
序列化对比:Serializable码流大、性能低;XML人机可读但复杂;JSON轻量、兼容性好但空间消耗大;ProtoBuff高效紧凑。支持大量长连接涉及系统限制调整、缓冲区优化。select/poll/epoll是IO多路复用,epoll在高连接数下性能更优且支持边缘触发。水平触发持续通知数据,边缘触发仅通知新数据。直接内存减少一次拷贝,零拷贝技术如sendfile和MMAP提升效率。关注公众号"AntDream"了解更多技术细节。
7 1
|
4天前
|
SQL 关系型数据库 MySQL
字节面试:MySQL自增ID用完会怎样?
字节面试:MySQL自增ID用完会怎样?
12 0
字节面试:MySQL自增ID用完会怎样?
|
5天前
|
安全 Java 数据安全/隐私保护
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(二)
15 0
|
5天前
|
JSON 安全 Java
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(一)
Java基础4-一文搞懂String常见面试题,从基础到实战,更有原理分析和源码解析!(一)
14 0
|
6天前
|
存储 异构计算 内存技术
【硬件工程师面试宝典】常见面试题其一
- Setup时间:时钟前数据需稳定的最小时间。 - Hold时间:时钟后数据需保持稳定的时间。 - 竞争现象:不同路径信号汇合导致输出不稳定。 - 冒险现象:竞争引起的短暂错误状态。 - D触发器实现2倍分频电路。
20 5
|
6天前
【硬件工程师面试宝典】常见面试题其二
检查单片机上电不运行:电源电压、时钟信号、复位电路、程序烧录。三极管特性:输出特性曲线和转移特性曲线。频率响应指系统对不同频率信号的响应,稳定要求幅度和相位不变。改变响应曲线方法:调整反馈、使用滤波器、改变元件参数。差分运放相位补偿通过在反馈回路加电容,波特图显示补偿效果。基本放大电路类型有共射、共集、共基,差分结构用于抗干扰和提高共模抑制比。电阻电容串联,电容电压为低通滤波,电阻电压为高通滤波。选择电阻考虑阻值、功率、温度系数、精度和尺寸。CMOS电路传递低电平用N管。电流偏置电路通过R1、Q1产生稳定电流。施密特电路回差电压由R1、R2决定。LC振荡器的哈特莱、科尔皮兹、克拉
13 0
|
6天前
|
存储 缓存 NoSQL
【面试宝藏】Redis 常见面试题解析其二
Redis 高级面试题涵盖了哈希槽机制、集群的主从复制、数据丢失可能性、复制机制、最大节点数、数据库选择、连通性测试、事务操作、过期时间和内存优化等。Redis 使用哈希槽实现数据分布,主从复制保障高可用,异步复制可能导致写操作丢失。集群最大支持1000个节点,仅允许单数据库。可通过 `ping` 命令测试连接,使用 `EXPIRE` 设置过期时间,`MULTI/EXEC` 等进行事务处理。内存优化包括合理数据类型、设置过期时间及淘汰策略。Redis 可用作缓存、会话存储、排行榜等场景,使用 `SCAN` 查找特定前缀键,列表实现异步队列,分布式锁则通过 `SET` 命令和 Lua 脚本实现。
19 5
|
7天前
|
Java
|
7天前
|
分布式计算 Java Spark

热门文章

最新文章

推荐镜像

更多