MySQL存储引擎有InnoDB,MyIsam,Memory,Blackhole,CSV,Performance_Schema,Archive,Federated,Mrg_Myisam。这里着重介绍InnoDB和MyIsam存储引擎。
一,InnoDB存储引擎
InnoDB存储引擎支持事务,有行级锁和外键约束。
InnoDB引擎提供对数据库ACID特性的支持,实现了SQL标准的四种隔离级别。该引擎的设计目标是处理大容量数据。该引擎没有保存表的总行数,select count(*)的时候需要扫描全表。当需要使用数据库事务的时候,该引擎是首选。由于锁的粒度比较小,写操作不会锁定全表,所以在并发高的场景下使用InnoDB引擎是首选。
适用场景:
经常更新的表,适合处理并发高的更新操作。
支持事务。
可以从灾难中恢复(binlog)
外键约束
二,MyIsam存储引擎
不提供对数据库ACID事务的支持,不支持行级锁和外键,当insert和update的时候会锁定全表,效率低。MyIsam引擎中存储了表行数。
适用场景:
不支持事务的设计
不支持外键的表设计
读多写少的操作