在MySQL中我们主要会使用到两种表引擎:InnoDB和MyISAM。
下面我们来看看两种表引擎的区别:
InnoDB引擎:
1.灾难恢复性好。
2.支持4种级别的事务,双认事务的隔高级别是Repeatable Read,事务支持是通过MVCC并发控制来提供的。
3.使用行级锁,并发性能高。
4.使用此存储引擎的表,数据的物理组织形式是簇表,数据按主键来组织,即主键索引和数据是在一起的,B+树就是这样的。
5.实现缓冲管理,能缓存索引也能缓存数据。
6.支持外键。
7.支持热备份。
8.对数据的插入,更改,删除性能更好。
MyISAM引擎:
1.配合锁,实现操作系统下的复制备份、迁移。
2.使用表级锁并发性差。
3.支持全文索引。
4.主机宕机后,表容易损坏,灾难恢复性差。
5.无事物支持。
6.只能缓存索引,数据缓存利用操作系统缓冲区来实现,引发过多的系统调用,性能不佳。
7.数据紧凑存储,可以获得更快的索引和更快的全表扫描性能。
8.对数据的查询,性能表现更好。
两种存储引擎的选择:
我们通常选用InnoDB作为表的存储引擎,能使用事物,且并发性高,支持外键,支持外键索引等。