MyISAM
以下再看看MyISAM和InnoDB的索引图示
- 表级锁
- 数据非自动恢复
- 不支持事务
- 仅索引加载在内存中,数据缓存由操作系统
- 紧凑的数据存储,正是这样才能实现高速的数据扫描
- 表级锁
- 不支持动态数据类型Text和BLOB,varchar会被当做成char来处理
- 默认索引类型是Hash索引
- 不支持索引统计
- MySQL数据库服务器重启后数据全部丢失
- 支持事务
- 支持外键(version 5.0,on
ly 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(*)的值
以下再看看MyISAM和InnoDB的索引图示
转载自:http://zhwlsoft.blog.163.com/blog/static/17637120220117431251698/