MySQL面试深度解析:锁机制、事务隔离、存储引擎

需积分: 0 1 下载量 113 浏览量 更新于2024-08-04 收藏 19KB TXT 举报
"最新mysql面试题库,涵盖了MySQL的锁机制、表格类型、事务隔离级别、数据类型区别、主键与候选键的概念、myisamchk工具、TIMESTAMP特性和索引查看方法,以及LIKE运算符、时间戳转换、列对比运算符、BLOB与TEXT的差异以及MySQL_fetch_array与MySQL_fetch_object的区别。" 1. MySQL中的锁机制包括表级锁、行级锁和页面锁。表级锁开销小,加锁快,但并发度低,可能导致大量锁冲突。行级锁提供最高的并发度,但加锁和处理死锁成本较高。页面锁则介于两者之间。 2. MySQL的表格类型主要有MyISAM、Heap、Merge、INNODB和MISAM。MyISAM不支持事务,适合读多写少的场景;Heap(内存表)数据存储在内存中,速度较快但数据不持久;Merge表是多个MyISAM表的集合;INNODB支持事务处理,是MySQL的默认存储引擎;MISAM是早期的错误拼写,实际应为MyISAM。 3. MyISAM和InnoDB的主要区别在于事务处理和索引类型。MyISAM不支持事务,而InnoDB支持ACID事务,提供了更高的数据一致性。MyISAM使用非聚簇索引,InnoDB使用聚簇索引,将数据和索引存储在一起。 4. InnoDB支持四种事务隔离级别:READ UNCOMMITTED(读未提交)、READ COMMITTED(读已提交)、REPEATABLE READ(可重复读)和SERIALIZABLE(串行化)。隔离级别越高,防止脏读、不可重复读和幻读的能力越强,但并发性降低。 5. CHAR和VARCHAR都是字符串类型,CHAR长度固定,检索时会去掉尾部空格,适合存储固定长度的文本;VARCHAR长度可变,节省空间,适合存储可变长度的文本。 6. 主键是表中唯一标识一行的数据,每个表只能有一个主键。候选键也是能唯一标识一行的键,但可以有多个。主键通常是候选键的一种选择,用于建立外键关联。 7. myisamchk是MySQL提供的用于检查、修复、优化和分析MyISAM表的工具,对MyISAM存储引擎的表进行维护。 8. 如果表中有一列定义为TIMESTAMP,该列会自动记录每次插入或更新时的时间戳,且在MySQL中可能实现自动更新。 9. 使用`SHOW INDEX FROM table_name`命令可以查看为特定表格定义的所有索引。 10. LIKE声明中的`%`代表任意数量的字符,`_`代表单个字符,用于模糊匹配。 11. 列对比运算符包括`=`, `<>`, `<=`, `<`, `>=`, `>`, `<<`, `>>`, `<=>`, `AND`, `OR` 和 `LIKE`等,用于查询语句中比较列的值。 12. BLOB和TEXT都是用于存储大对象的类型,BLOB用于二进制数据,TEXT用于文本数据,它们的最大长度不同,BLOB通常用于存储图片、文档等,TEXT用于存储文本内容。 13. MySQL_fetch_array和MySQL_fetch_object分别用于从结果集中获取行数据,前者返回数组,后者返回对象。数组形式允许以索引或关联方式访问数据,而对象形式更符合面向对象编程的习惯。