做为 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
(完)索引
更多精彩文章,尽在「服务端思惟」微信公众号!
事务