MySQL两种存储引擎(InnoDB和MyISAM)对比

一、InnoDB简介

InnoDB是事务型数据库的首选引擎,MySQL5.5.5之后,InnoDB作为默认存储引擎。主要特性:

  1. InnoDB给MySQL提供了具有提交、回滚和奔溃恢复能力的事务安全存储引擎。InnoDB锁定在行级并且也在select语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。
  2. InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系数据库引擎所不能匹敌的。
  3. InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引存在一个逻辑表空间中,表空间可以包含数个文件。InnoDB表可以是任何尺寸,即使在文件尺寸被限制在2GB的操作系统上。
  4. InnoDB支持外键完整性约束。
  5. InnoDB被用在众多需要高性能的大型数据库站点上。

二、MyISAM简介

MyISAM拥有较高的插入、查询速度,但不支持事务。MySQL5.5.5之前的版本,MyISAM是默认引擎。主要特性:

  1. BLOB和TEXT列可以被索引
  2. NULL值被允许在索引列中,这个值占每个键的0~1个字节。
  3. 所有数字键值以高字节优先被存储以允许一个更高的索引压缩。
  4. 可以把数据文件和索引文件放在不同目录。
  5. 每个字符列可以有不同的字符集。

三、综合对比

功能

InnoDB MyISAM

存储限制

64TB 256TB

支持事务

×

支持全文索引

×

支持数索引

支持哈希索引

×

×

支持数据缓存

×

支持外键

×

 四、总结

如果要提供提交、回滚和奔溃恢复能力的事务安全能力,并要求实现并发控制,InnoDB是个很好的选择;如果数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率。

 

参考文献:[1]李波.MySQL从入门到精通[M].北京:清华大学出版社,2015:37-39

发布了11 篇原创文章 · 获赞 12 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_36135231/article/details/103108286