加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

介绍MySQL 两种引擎的区别

发布时间:2023-09-19 15:59:52 所属栏目:MySql教程 来源:
导读:Innodb 引擎

Innodb 引擎提供了对数据库 ACID 事务的支持,并且实现了 SQL 标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于 MySQL 后台的完整数据
Innodb 引擎
 
Innodb 引擎提供了对数据库 ACID 事务的支持,并且实现了 SQL 标准的四种隔离级别。该引擎还提供了行级锁和外键约束,它的设计目标是处理大容量数据库系统,它本身其实就是基于 MySQL 后台的完整数据库系统,MySQL 运行时 Innodb 会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持 FULLTEXT 类型的索引,而且它没有保存表的行数,当 SELECT COUNT (*) FROM TABLE 时需要扫描全表。当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用 Innodb 引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个 SQL 语句时 MySQL 不能确定要扫描的范围,InnoDB 表同样会锁全表。
 
MyIASM 引擎
 
MyIASM 是 MySQL 默认的引擎,但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当 INSERT (插入) 或 UPDATE (更新) 数据时即写操作需要锁定整个表,效率便会低一些。不过和 Innodb 不同,MyIASM 中存储了表的行数,于是 SELECT COUNT (*) FROM TABLE 时只需要直接读取已经保存好的值而不需要进行全表扫描。如果表的读操作远远多于写操作且不需要数据库事务的支持,那么 MyIASM 也是很好的选择。
 
主要区别:
 
1、MyIASM 是非事务安全的,而 InnoDB 是事务安全的
 
2、MyIASM 锁的粒度是表级的,而 InnoDB 支持行级锁
 
3、MyIASM 支持全文类型索引,而 InnoDB 不支持全文索引
 
4、MyIASM 相对简单,效率上要优于 InnoDB,小型应用可以考虑使用 MyIASM
 
5、MyIASM 表保存成文件形式,跨平台使用更加方便
 
应用场景:
 
1、MyIASM 管理非事务表,提供高速存储和检索以及全文搜索能力,如果再应用中执行大量 select 操作,应该选择 MyIASM
 
2、InnoDB 用于事务处理,具有 ACID 事务支持等特性,如果在应用中执行大量 insert 和 update 操作,应该选择 InnoDB
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章