数据库高级面试题
以下是一些数据库高级面试题及其答案:
一、索引设计与优化
-
解释MySQL中的索引类型及其应用场景。
- 答案:
- 主键索引:唯一标识每条记录,适用于主键列。
- 唯一索引:保证索引列的值唯一,适用于需要唯一约束的列。
- 普通索引:加速查询的普通索引,适用于一般的查询操作。
- 联合索引:多个列组成的索引,适用于多个列的查询条件。
- 全文索引:用于查找文本中的关键词,适用于文本搜索。
- 答案:
-
什么是索引的“最左前缀原则”?请举例说明。
- 答案:
- 最左前缀原则是指在使用联合索引时,查询条件应尽可能使用索引的最左前缀。例如,创建联合索引
idx_name_age_email
,查询条件应尽量包含name
、age
和email
列的顺序。 - 查询
SELECT * FROM users WHERE name = 'John';
会使用索引,但查询SELECT * FROM users WHERE age = 25;
不会使用索引,因为不满足最左前缀原则。
- 最左前缀原则是指在使用联合索引时,查询条件应尽可能使用索引的最左前缀。例如,创建联合索引
- 答案: