MySQL的两种引擎

mysql两种引擎Innodb和MyIasm

Innodb提供了数据库事务的支持,并实现了sql标准的四种隔离级别,该引擎还提供了航迹锁和外键约束,它的设计目标是处理大容量数据库系统,它本身就是基于Mysql后台的完整数据库系统,Mysql运行时INnodb会在内存中建立缓冲池,用于缓存数据和索引,但是该引擎不支持FULLTEXT类型的索引,而且它没有保存表的行数,select count(*) from table时需要扫描全表,需要使用数据库事务时,该引擎是首选,由于锁的粒度更小,写操作不会锁定全表,所以在并发高时,使用Innodb引擎会提升效率,但是使用行级锁也不是绝对的,如果在执行sql语句时Mysql能确定扫描的范围,InnoDb同样会锁全表。

MyIASMysql是mysql默认的引擎,但是它没有提供对事物的支持,也不支持行级锁和外键,因此当insert(插入)update(更新)数据时即写操作需要锁定整个表,效率会低一些,不过 和InnoDb不同,MyIASMysql中存储了表的行数,select count(*) from table时只需要直接读取保存好的值,不需要进行全表扫描,如果表的度操作远远多于写操作且不需要事务 的支持,那么MyIASM也是很好的选择。

主要区别:

MyIASM是非事务安全的,而InnoDb是事务安全的

MyiASM锁的粒度是表级的,而InnoDB支持行级锁

MyIASM支持全文类型索引,而InnoDb不支持全文索引

MyIASM相对简单,效率上优于InnoDb,小型应用可以考虑使用MyIASM

MyIASM表保存成文件形式,跨平台使用更加方便

应用场景:

MyIASM管理非事务表,提供高速存储和检索以及全文搜索能力,如果再应用中执行大量select(查询)操作,应该选MyIASM

InnoDb用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量的insert(插入)和update(更新)操作,应该选择INnoDb

想了解更多,关注下!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181210G1LOUE00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券