数据库面试题大全,常见问题完美解析,告别面试紧张,轻松应对数据库常问难题

文章导读
1. 什么是数据库索引?为什么使用索引?索引就像书的目录,能快速找到数据位置,提高查询速度。B树索引适合范围查询,哈希索引适合等值查询。没有索引,数据库要全表扫描,很慢。
📋 目录
  1. 常见索引类型
  2. 2. 什么是事务?ACID特性
  3. 3. 数据库范式详解
  4. 4. InnoDB与MyISAM区别
  5. 5. 如何优化SQL查询
  6. 6. 什么是数据库锁
A A

1. 什么是数据库索引?为什么使用索引?
索引就像书的目录,能快速找到数据位置,提高查询速度。B树索引适合范围查询,哈希索引适合等值查询。没有索引,数据库要全表扫描,很慢。

常见索引类型

主键索引:唯一不为空。
唯一索引:唯一可为空。
普通索引:无限制。
复合索引:多个字段组合,最左前缀原则ab查询用,ba不行。

2. 什么是事务?ACID特性

事务是一组原子操作,要么全成功要么全失败。
A原子性:不可分割。
C一致性:前后状态正确。
I隔离性:互不干扰。
D持久性:提交后永久保存。

3. 数据库范式详解

第一范式:原子值无重复组。
第二范式:消除部分依赖,全依赖主键。
第三范式:消除传递依赖,非主键只依赖主键。

数据库面试题大全,常见问题完美解析,告别面试紧张,轻松应对数据库常问难题

4. InnoDB与MyISAM区别

InnoDB支持事务、外键、行锁、崩溃恢复。
MyISAM支持表锁、全文索引、速度快但不支持事务。

5. 如何优化SQL查询

避免select *,用具体字段。
加索引,避免隐式转换。
小表驱动大表。
limit分页用覆盖索引。

6. 什么是数据库锁

共享锁:读锁,可共存。
排他锁:写锁,独占。
行锁优于表锁,减少并发问题。

Q: 数据库死锁怎么解决?
A: 设置锁超时、固定锁顺序、死锁检测自动回滚。

数据库面试题大全,常见问题完美解析,告别面试紧张,轻松应对数据库常问难题

Q: 什么是慢查询?
A: 执行超时的查询,开启slow_query_log分析优化。

Q: 分库分表怎么做?
A: 水平分表按用户ID模分,垂直分按业务模块。

Q: MySQL主从复制原理?
A: 主库binlog, slave io线程拉取,sql线程执行。