MySQL进阶面试精华:115题详解

需积分: 0 1 下载量 89 浏览量 更新于2024-08-04 收藏 40KB TXT 举报
在MySQL面试中,面试官可能会提问关于数据库管理、数据结构、事务处理和性能优化等多个关键领域的知识。以下是一些重要知识点的详细解析: 1. **锁机制**: MySQL中的锁类型包括: - **表级锁**:在MyISAM引擎中广泛使用,加锁速度快但并发度低,容易导致整体表级的阻塞。 - **行级锁**:INNODB引擎的默认锁类型,粒度细,减少锁冲突,但加锁慢且可能导致死锁,提高并发处理能力。 - **页面锁**:介于表锁和行锁之间,提供平衡的锁定效果,但同样存在死锁风险。 2. **MySQL表格类型**: MySQL支持五种基本表格类型: - MyISAM:不支持事务,简单高效,适合读多写少的场景。 - HEAP:内部存储引擎,无文件结构,适合临时表或插入顺序不固定的表。 - MERGE:基于MyISAM,用于合并多个表,主要在存储过程或视图中使用。 - INNODB:支持事务、行级锁和外键,适用于高并发和事务密集型应用。 - MEMORY(HEAP):内存中的存储引擎,只适合数据量小且频繁更新的情况。 3. **MyISAM与InnoDB的区别**: - MyISAM不支持事务,而InnoDB支持ACID事务。 - InnoDB行级锁提高了并发性,MyISAM有表级锁可能造成阻塞。 - MyISAM有自增字段预读取功能,InnoDB则没有。 4. **事务隔离级别**: - readuncommited:读到未提交的数据,风险最高。 - readcommitted:避免脏读,不能防止幻读。 - repeatableread:可重复读,禁止脏读和幻读,但不可读已删除行。 - serializable:最高的隔离级别,能完全避免脏读、幻读和不可重复读,但性能较低。 5. **CHAR与VARCHAR**: - CHAR固定长度,存储时填充空格,检索时移除尾部空格,占用空间可能较大。 - VARCHAR变长,根据实际字符长度存储,节省空间,但检索时需要计算实际长度。 6. **主键与候选键**: - 主键是唯一的标识,每个表仅有一个,通常作为外键的基础。 - 候选键是可以唯一标识一行的数据,但不一定被设为主键,可能用作其他表的外键。 7. **myisamchk工具**: 这是MyISAM引擎的维护工具,用于检查和修复MyISAM表的元数据,如索引、数据一致性等。 8. **TIMESTAMP字段**: 表示日期和时间,通常自动更新,如插入当前时间。 9. **查看索引**: 使用SHOW INDEX FROM语句查看指定表的索引信息。 10. **LIKE语句中的通配符**: - `%`:匹配任意数量的字符,包括零字符。 - `_`:匹配单个字符。 11. **列对比运算符**: 包括基本的比较运算符(=, <>, <=, <, >=, >, <<, >>, <=>),逻辑运算符(AND, OR)以及模糊匹配(LIKE)。 12. **BLOB与TEXT的区别**: - BLOB是二进制大对象,存储非文本数据,如图片或视频。 - TEXT用于存储较长的纯文本数据,比BLOB更易于处理。 13. **MySQL_fetch_array与MySQL_fetch_object**: - MySQL_fetch_array返回结果集的下一行作为关联数组或数字索引数组。 - MySQL_fetch_object将行数据转化为对象,便于面向对象编程。 以上知识点涵盖了MySQL面试中常见的基础概念和高级特性,理解和掌握这些内容对于求职者在面试中展现自己的技术水平至关重要。