MySQL常用存储引擎

来源:互联网 发布:a javascript void 编辑:程序博客网 时间:2024/05/23 01:20
MyISAM
  • 表级锁
  • 数据非自动恢复
  • 不支持事务
  • 仅索引加载在内存中,数据缓存由操作系统
  • 紧凑的数据存储,正是这样才能实现高速的数据扫描
HEAP
  • 表级锁
  • 不支持动态数据类型Text和BLOB,varchar会被当做成char来处理
  • 默认索引类型是Hash索引
  • 不支持索引统计
  • MySQL数据库服务器重启后数据全部丢失
InnoDB
  • 支持事务
  • 支持外键(version 5.0,only the storage engine level support)
  • 行级锁
  • 多版本支持
  • 主键聚集,所有InnoDB表都依赖于主键聚集
  • 所有的非主键索引内容包含主键列的值
  • 最优化缓存,缓存中包含索引和数据,innodb_buffer_pool_size.InnoDB缓存采用的是自动hash便于查找
  • 非压缩的索引
  • 缓慢的数据加载,因为MySQL 5.0没有特别优化数据加载操作,每条记录建一次索引,所以大数据量的服务重启会很慢。
  • AUTO_INCREMENT锁表,在MySQL 5.1以前的InnoDB中,如果主键列采用了AUTO_INCREMENT则是表级锁。在MySQL5.1以后支持innodb_autoinc_lock_mode,默认值1,含义是bulk insert。0是传统的表级锁,2是交叉的表级锁(interleaved:fastest and most scalable lock mode,but not safe)。
  • 不缓存COUNT(*)的值
纵观以上3中常用的存储引擎,InnoDB和Heap在以后新的应用中更有可用性。

以下再看看MyISAM和InnoDB的索引图示

MySQL常用存储引擎笔记

转载自:http://zhwlsoft.blog.163.com/blog/static/17637120220117431251698/