查询当前表的引擎 show table status like 'sys_account' \\G
MySQL不同于其他数据库,它的存储引擎是**“可插拔”**的
InnoDB引擎(MySQL 5.5及以后的版本中,默认)
特点:
- 灾难恢复性好。
- 支持全部4种级别的事务。默认的事务隔离级别是可重复读(Repeatable Read),它的事务支持是通过**多版本并发控制(MVCC)**来提供的。
- 使用行级锁。
- 对于InnoDB引擎中的表,其数据的物理组织形式是簇表(Cluster Table),数据按主键来组织,也就是说主键索引和数据是在一起的,数据按主键的顺序物理分布。数据表的另一种常见形式是非簇表,其索引是有序的,而数据是无序的。
- 实现了缓冲管理,不仅能缓冲索引也能缓冲数据,并且会自动创建散列索引以加快数据的获取。相比之下,MyISAM只是缓存了索引。
- 支持外键。
- 支持热备份。
MyISAM引擎(MySQL5.0/5.1的默认引擎)
由于它有许多缺陷,如不支持事务、灾难恢复性差,所以不建议在生产环境中使用。
特点:
- 使用表级锁,并发性差。
- 主机宕机后,MyISAM表易损坏,灾难恢复性不佳。
- 无事务支持。
- 只缓存索引,数据的缓存是利用操作系统缓冲区来实现的。可能引发过多的系统调用且效率不佳。
MEMORY引擎
MEMORY存储引擎提供“内存”表,也不支持事务、外键。