服务端指南 数据存储篇 | MySQL(02) 存储引擎的 InnoDB 与 MyISAM 之争

做为 MySQL 数据库的两种主要的存储引擎,InnoDB 与 MyISAM 各有长处。mysql

原文地址:服务端指南 数据存储篇 | MySQL(02) 存储引擎的 InnoDB 与 MyISAM 之争
博客地址:blog.720ui.com/sql

在 MySQL 5.1 及以前的版本中,MyISAM 是默认的存储引擎,而在 MySQL 5.5 版本之后,默认使用 InnoDB 存储引擎。数据库

MyISAM 不支持行级锁,换句话说,MyISAM 会对整张表加锁,而不是针对行。同时,MyISAM 不支持事务和外键。MyISAM 可被压缩,存储空间较小,并且 MyISAM 在筛选大量数据时很是快。微信

InnoDB 是事务型引擎,当事务异常提交时,会被回滚。同时,InnoDB 支持行锁。此外,InnoDB 须要更多存储空间,会在内存中创建其专用的缓冲池用于高速缓冲数据和索引。InnoDB 支持自动奔溃恢复特性。ui

InnoDB 与 MyISAM 的主要区别cdn

方面 MyISAM InnoDB
事务 不支持 支持
外键 不支持 支持
行级锁 不支持 支持
自动奔溃恢复 不支持 支持

对于如何选择 InnoDB 与 MyISAM 存储引擎,个人建议:通常状况下,应该优先选择 InnoDB 存储引擎,而且尽可能不要将 InnoDB 与 MyISAM 混合使用。blog

(完)索引

更多精彩文章,尽在「服务端思惟」微信公众号!
事务

相关文章
相关标签/搜索