MySQL基础面试题详解: NOW() vs CURRENT_DATE(), CHAR vs VARCHAR,索引差异与表格类型

需积分: 5 0 下载量 3 浏览量 更新于2024-08-03 收藏 18KB DOCX 举报
MySQL是广泛应用于web应用程序的开源关系型数据库管理系统。本文档提供了关于MySQL的基础面试题及其解答,帮助面试者深入理解数据库管理的相关知识。 1. NOW()和CURRENT_DATE()的区别:NOW()返回当前的完整日期和时间,包括年、月、日、时、分、秒;而CURRENT_DATE()仅返回当前的日期,不包含时间。这对于记录完整的事件时间至关重要,而在仅关注日期的情况下,CURRENT_DATE()更为简洁。 2. CHAR和VARCHAR类型对比:CHAR存储固定长度的数据,长度由用户指定,且存储时会填充空格至指定长度,检索时会去除尾部的空格。VARCHAR则为可变长度字符串,长度可根据实际内容动态调整,更灵活,但存储和检索效率略低,因为需要额外的存储空间来记录实际长度。 3. 主键索引与唯一索引的差异:主键是数据库中的一个重要约束,它确保数据的唯一性和完整性,且不允许为空;而唯一索引虽然也有唯一性要求,但允许有空值。一个表只能有一个主键,可以有多个唯一索引。主键通常用于标识行,而唯一索引适用于不经常更新的字段。 4. MySQL中的五种表格类型:MyISAM、Heap、Merge、InnoDB和ISAM,各有特点。MyISAM适合大批量读取,但不支持事务;Heap是SQL Server特有的,InnoDB支持事务和行级锁定,适合频繁更新的场景;ISAM在MySQL 5.5之前为主用引擎,现在较少使用。 5. SQL的生命周期概述:SQL操作涉及连接建立、请求接收、解析、执行计划生成、数据读取、逻辑处理、结果返回以及最终断开连接释放资源的过程。 6. 查看表格索引的方法:使用SQL命令SHOWINDEX FROM tablename,可以查看指定表的索引结构,了解其类型、是否唯一、包含列等信息。 7. B+树的选择理由:B+树在MySQL中作为索引结构的主要原因在于其高效性。B+树支持顺序和随机访问,空间利用率高,减少磁盘I/O,查询稳定性好,特别适合大量数据存储和频繁检索的应用场景。相比之下,B树不适用于大型数据库索引的高效查找。 掌握这些基础概念对于理解和优化MySQL数据库性能、设计高效的数据模型以及应对面试问题都至关重要。