MyISAM 和 InnoDB 有什么区别?

提问者:帅平 问题分类:面试刷题
MyISAM 和 InnoDB 有什么区别?
1 个回答
丢一地的真心、没人珍惜
丢一地的真心、没人珍惜
mysql 中MyISAM和InnoDB引擎的区别有:

MyISAM 只有表级锁,而 InnoDB 支持行级锁和表级锁,默认为行级锁。
MyISAM 不提供事务支持,InnoDB 提供事务支持,实现了 SQL 标准定义的四个隔离级别,具有提交和回滚事务的能力。
MyISAM 不支持外键,而 InnoDB 支持外键。
MyISAM 不支持异常崩溃后的安全恢复,而 InnoDB 支持异常崩溃后的安全恢复。使用 InnoDB 的数据库在异常崩溃后,数据库重新启动的时候会保证数据库恢复到崩溃前的状态。这个恢复的过程依赖于 redo log 。
MyISAM 不支持MVCC,而 InnoDB 支持MVCC。
InnoDB 的性能比 MyISAM 更强大,
MyISAM 索引文件和数据文件是分离的,索引保存的是数据文件的指针。InnoDB 引擎中,其数据文件本身就是索引文件。其表数据文件本身就是按 B+Tree 组织的一个索引结构,树的叶子节点 data 域保存了完整的数据记录。
发布于:2个月前 (03-08) IP属地:未知
我来回答