MySQL基础面试必备:知识点详解与差异对比

需积分: 5 0 下载量 64 浏览量 更新于2024-08-03 收藏 6KB MD 举报
"MySQL最新基础面试题及答案整理" 在MySQL的基础面试中,了解数据库的关键概念和技术是至关重要的。以下是对给定题目的一些详细解释: ### 1、NOW()和CURRENT_DATE()的区别 `NOW()` 函数返回当前日期和时间,包括小时、分钟和秒,格式通常为 'YYYY-MM-DD HH:MM:SS'。而`CURRENT_DATE()` 只返回当前日期,不包含时间部分,格式为 'YYYY-MM-DD'。 ### 2、CHAR和VARCHAR的区别 **CHAR** 是定长字符串类型,长度在1到255个字符之间。在存储时,会用空格填充到指定长度,检索时会自动去除尾随空格。这使得CHAR适合存储长度固定的数据,如邮政编码或ID号。 **VARCHAR** 是变长字符串类型,同样长度范围在1到255个字符,但它只存储实际使用的字符数量,不添加额外的空格。这使其在存储可变长度的文本时更节省空间,但可能因变长特性导致插入和排序效率较低。 ### 3、主键索引与唯一索引的区别 - **主键** 是一种强制性的约束,确保数据的唯一性和完整性,一个表只能有一个主键。 - **唯一索引** 是一种非强制性索引,允许多个NULL值,可以有多个唯一索引。 - 主键自动创建唯一索引,但唯一索引并不一定是主键。 - 主键列不允许有NULL值,而唯一索引列可以。 - 主键可作为其他表的外键,唯一索引则不能。 ### 4、MySQL中的不同表格类型 MySQL支持多种表格引擎,每种都有其特点: - **MyISAM**:不支持事务,但读取速度快,占用空间少。 - **Heap (MEMORY)**:数据存储在内存中,速度极快,但断电数据丢失。 - **Merge**:用于合并多个MyISAM表,便于管理大量数据。 - **INNODB**:支持事务处理和行级锁定,适合并发操作,是MySQL的默认引擎。 - **ISAM**:较旧的引擎,不常用,主要用于教学示例。 ### 5、SQL的生命周期 SQL语句执行的一般过程: 1. 应用程序连接到数据库服务器。 2. SQL语句被传递给数据库。 3. 语句被解析并生成执行计划。 4. 数据从硬盘读入内存,根据执行计划进行处理。 5. 结果通过连接返回给应用程序。 6. 连接关闭,释放资源。 ### 6、查看表的索引 使用`SHOW INDEX FROM <tablename>` 命令可以列出表的所有索引信息,包括索引名称、类型、是否为主键等。 ### 7、数据库为何使用B+树而非B树 B+树相比于B树有以下优势: - **B+树所有数据都存储在叶子节点**,方便顺序访问,适合大数据量检索。 - **B+树的分支因子更大**,能容纳更多关键字,减少磁盘I/O操作。 - **B+树的叶子节点之间有指针链接**,便于区间遍历,而B树不提供这种便利。 这些知识点对于理解MySQL的基本操作和优化至关重要,无论是初级开发者还是经验丰富的DBA,都需要对这些概念有深入的理解。