MYISAM
不支持事务,是mysql5.6之前最常用的非事务存储引擎。
查询速度相对较快,但读写都会对数据加锁,在频繁读写业务中容易产生大量阻塞,影响整体性能
CSV
不支持事务,以csv格式存储的非事务存储引擎。
由于不支持事务,读写时会对数据加锁。通常用在不同系统间的数据交换,但不建议作为业务核心引擎来存储数据
Archive
不支持事务,只允许查询和新增数据而不允许修改的非事务存储引擎。
常用在归档类日志,这种只会新增而不会修改的数据中,另外Archive存储占用的物理空间更小
Memory
不支持事务,是一种易失性非事务存储引擎,数据存储在内存中。
特点是速度快,但mysql一旦重启,数据对消失。
主要用处是在mysql内部,在执行一些大sql过程中,需要存储临时中间结果的数据集,且这数据在符合某种条件下会将中间数据集存储在Memory种以加快sql执行速度
INNODB
支持事务,最常用的事务性存储引擎,5.7之后的默认存储引擎,一般如果没什么特别的要求,都会选这个引擎
INNODB引擎按主键顺序聚集存储,主键本身也会占用物理空间,因此主键的大小会影响查询效率。
另外数据是按主键逻辑顺序来存储,若主键顺序经常无缘变化,会造成数据迁移,带来IO性能的消耗。因此在一般情况下,建议使用自增ID为主键
在需要事务支持的场景中,一定不要混合使用事务存储引擎和非事务存储引擎。因为事务若因某种原因被回滚,非事务存储引擎所做的修改是无法回滚的,这样就破坏了事务的一致性要求,也破坏了数据的完整性