MySQL面试题详解:主键、连接与索引

需积分: 5 0 下载量 97 浏览量 更新于2024-08-03 收藏 43KB DOC 举报
MySQL是关系型数据库管理系统中的一种,面试时常常涉及对基础知识和核心概念的理解。本文档汇总了一些常见的MySQL面试题目及其答案,帮助求职者准备面试。 1. 主键与候选键的区别: 主键是数据库中用于唯一标识一行数据的字段或一组字段,一个表只能有一个主键。主键同时也是候选键,即一组候选字段,其中任何一组能唯一确定一条记录。通常,候选键可以被指定为主键,以便于表间的关系操作。候选键并不一定要设置为主键,但一旦被选作主键,其他字段不能再作为独立的候选键。 2. SQL连接类型: - 内连接:基于特定条件筛选出两个表中匹配的行,仅保留满足条件的数据。 - 外连接(左连接、右连接和全外连接):保留至少一方的所有数据,左连接(左外连接)中左表的所有记录都会出现,右表未匹配的记录用NULL填充;右连接反之;全外连接包含两个表的所有数据,MySQL不支持全外连接,需要手动实现。 3. SQL生命周期: SQL从服务器与数据库建立连接开始,经过解析、执行计划生成、数据读取和处理、结果返回到客户端,最后关闭连接释放资源。这个过程确保数据操作的完整性和一致性。 4. 复合索引的利用: 创建复合索引时,应遵循最左匹配原则,即查询条件应尽可能覆盖索引的最左边部分。例如,如果有索引(k1, k2, k3),查询`where k1 = A AND k2 = B AND k3 = D`会利用到索引,但如果条件改为`where k2 = B AND k3 = D`则不会使用到索引。 5. MySQL锁机制: 锁是并发控制的关键,用来解决多事务环境下数据一致性问题。锁类似于现实生活中的房间钥匙,只有持有锁的事务才能访问数据,其他事务必须等待。MySQL提供了多种类型的锁,如行锁、页锁等,以确保并发环境下的数据安全。 6. 最左前缀原则与最左匹配原则: - 最左前缀原则:在处理多列索引时,SQL会选择最长的匹配部分作为索引依据。例如,如果有索引(k1, k2),查询`where k1 = A`将利用到索引,而`where k1 = A AND k2 = B`也会利用到,因为前者的条件更长。 - 最左匹配原则:在使用复合索引时,查询条件必须从索引的最左侧开始匹配,否则可能无法使用索引。例如,前面提到的复合索引(k1, k2, k3),只有完全匹配`where k1 = A AND k2 = B AND k3 = D`时才会利用到索引。 掌握这些MySQL的基础知识和面试常见问题,可以帮助求职者在面试中展现自己的技能和理解深度。在实际工作中,理解这些原理并灵活运用是非常重要的。