大家知道,我们MySql的存储引擎分为以下几种:
InnoDB,MyISAM,ARCHIVE,BLACKHOLE,PERFORMANCE_SCHEMA,
FEDERATED,CSV,MRG_MYISAM,MEMORY
Support 列的值表示某种引擎是否能使用,YES
表示可以使用,NO
表示不能使用,DEFAULT
表示该引擎为当前默认的存储引擎。
在Mysql-5.5的版本之前,默认的存储引擎是MyISAM,在之后的版本都是默认的存储引擎是InnoDB
对应常用的这两种存储引擎,我们可以看下其区别:
1、MyISAM存储引擎
特点:
(1)、不支持事务管理
(2)、不支持外键
(3)、对数据查询缓存只会缓存索引,不会缓存数据,并且是用操作系统本身的缓存
(4)、默认的锁维度是表级的锁,所以并发性很差,但是发生死锁的概率小
(5)、支持全文索引,但是在mysql5.5版本后,InnoDB也开始支持全文索引
2、InnoDB存储引擎
特点:
(1)、灾难恢复性比较好
(2)、支持事务管理,并且默认的隔离级别为可重复读
(3)、使用锁的颗粒度为行级锁,支持并发
(4)、支持外键
(5)、在InnoDB支持缓存管理,通过缓存池,可以把索引与数据全部缓存起来
总的来说:
1、InnoDB比MyISAM能够支持事务管理
2、InnoDB的颗粒度为行级锁,而MyISAM的颗粒度为表级锁,所以相比而言,InnoDb能够支持并发,但是同时也会容易发生死锁的情况
3、在容灾备份上,InnoDb支持在线热备
4、在查询性能上,MyISAM的查询性能高
5、MyISAM更强调性能,而InnoDB则强调事务
作者:hellohass
链接:https://juejin.im/post/6867688399709405192
来源:掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。