MySQL面试精华:36题详解+主键与唯一索引对比

需积分: 5 0 下载量 161 浏览量 更新于2024-08-03 收藏 667KB PDF 举报
MySQL作为关系型数据库管理系统中的重要组件,经常在技术面试中被考察。以下是一些关键的面试问题及其解答,有助于你在MySQL领域深化理解: 1. NOW()与CURRENT_DATE()的区别: - NOW()函数返回的是当前完整的日期和时间,包括年、月、日、小时、分钟和秒。 - CURRENT_DATE()则只返回当前的日期,不包括时间部分。 2. CHAR与VARCHAR的区别: - CHAR是定长字符类型,长度固定且存储时会填充空格,检索时要去除尾部空格,占用空间大。 - VARCHAR是变长字符类型,长度可变,存储时不填充,更节省空间,但检索时保留原样。 3. 主键索引与唯一索引: - 主键是表中独一无二的标识,是唯一索引的一种,且不允许为空;而唯一索引不一定是主键,允许有空值。 - 主键通常用于表的主键约束,支持外键关联,而唯一索引不强制外键引用。 - 表中只能有一个主键,但可以有多个唯一索引。 4. MySQL中的表格类型: - MySQL支持多种表格类型:MyISAM、Heap、Merge、InnoDB和ISAM,各有特点,如MyISAM支持并发更新但不支持事务,InnoDB支持事务和行级锁定。 5. SQL查询生命周期: - SQL请求从应用服务器传递到数据库服务器,经历连接、请求、解析、执行计划生成、数据读取、逻辑处理、结果返回和断开连接等步骤。 6. 查看表格索引: - 通过`SHOW INDEX FROM tablename;`语句查看指定表格的索引信息,了解索引结构和优化策略。 7. B+树优于B树的原因: - B+树设计更适合数据库索引,因为它支持顺序和随机访问,提高检索效率; - 结构特点使得B+树减少了磁盘I/O次数,降低存储成本,尤其在大规模数据存储时性能优越。 掌握这些知识点可以帮助你深入理解MySQL的核心概念,从而在面试中表现出扎实的技能和理论基础。