MyISAM 与 InnoDB 这两个,是 MySQL 里的存储引擎比较常用的。他们的主要区别有:
1,主要区别:InnoDB 支持事务、行级锁, 而MyISAM都不支持事务和行级锁,支持表级锁。
(1)行级锁是Mysql中锁定粒度最细的一种锁,表示只针对当前操作的行进行加锁。行级锁能大大减少数据库操作的冲突。其加锁粒度最小,但加锁的开销也最大。而表级锁则相反。
(2)支持事务的意思是支持事务管理,事务是指访问并可能更新数据库中各种数据项的一个程序执行单元,开启事物管理后可以做到在此执行单元要么都成功,要么都失败,可以有效避免数据更新到一半而造成的尴尬情况。
InnoDB支持事务管理在应用在大量查询的表时,查询效率慢,开销大。
而MyISAM管理非事务表。它可以提供高速存储和检索,以及全文搜索能力。
因此InnoDB适用于大量更新数据表,或必须支持事务的情况,MYISAM支持大量检索查询的情况。
2,其他区别:
文件系统构成的区别,
表的具体行数:InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行,而MYISAM可直接获取保存的行数。
转载请注明:XAMPP中文组官网 » mysql的存储引擎Innodb和MyISAM的区别