mysql面试知识点
1 MyISAM和InnoDB的区别 a 是否支持行级锁 : MyISAM 只有表级锁 (table-level locking), 而 InnoDB 支持行级锁 (row-level locking)和表级锁,默认为行级锁。 b 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能 ,每次查询具有原子性,其执行速度比InnoDB类型更快,但是不提供事务支持。 但是 InnoDB 提供事务支持事务 ,外部键等高级数据库功能。 具有事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表。 c 是否支持外键: MyISAM不支持,而InnoDB支持。 d 是否支持MVCC : 仅 InnoDB 支持。应对高并发事务, MVCC比单纯的加锁更高效;MVCC只在 READ COMMITTED 和 REPEATABLE READ 两个隔离级别下工作;MVCC可以使用 乐观(optimistic)锁 和 悲观(pessimistic)锁来实现;各数据库中MVCC实现并不统一。 2 索引 MySQL索引使用的数据结构主要有 BTree索引 和 哈希索 引 。 对于 哈希索引 来说