MySQL 存储引擎有哪些?InnoDB 和 MyISAM 存储引擎有什么区别?

MySQL 存储引擎有哪些?

MySQL 存储引擎主要负责查询的执行和数据的存储,存储引擎主要有 InnoDB,MyISAM,Memery

  • InnoDB 是 MySQL 默认的存储引擎,支持事务和行级锁,以及外键的约束,具有事务提交、回滚和崩溃恢复的功能,适用于需要事务和高并发的应用
  • MyISAM 是 MySQL 早期的默认存储引擎,支持全文索引,但是不支持事务和行级锁,以及外键约束的,锁的粒度更大,更新性能比较差,适用于快速读取且数据量不大的场景
  • Memery 就是将数据放在内存中,访问速度快,但数据在数据库服务器重启后会丢失,不具备持久性,适用于临时存储数据的场景

InnoDB 和 MyISAM 存储引擎有什么区别?

在这里插入图片描述

InnoDB 和 MyISAM 首先在 数据存储 上有很大区别

InnoDB 引擎存储数据的方式采用的是 索引组织表,在索引组织表中,数据即索引,索引即数据,因此表数据和索引数据存储在同一个文件中。

MyISAM 引擎存储数据的方式则是 堆表,在堆表的组织结构中,数据和索引分开存储,因此表数据和索引数据会分别放在两个不同的文件中存储。

索引组织表有两个优势:

  • 在索引组织表将索引和数据保存在同一个 B+ 树中,能够使用聚簇索引,非聚簇索引每次查询都需要回表,相比之下会慢很多。
  • 在索引组织表中,如果记录发生了修改,则其他索引无须进行维护,除非记录的主键发生了修改,而当堆表的数据发生改变并且位置发生变更时,所有索引中的地址都要进行更新,这是非常影响性能的。

除此之外,InnoDB 引擎还支持行级锁、事务和外键约束,而 MyISAM 引擎都不支持,只支持表锁

  • 6
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值