MySQL存储引擎重点

第05章 存储引擎

存储引擎就指的是表的类型,也叫做表处理器,它的功能就是接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

1. 引擎介绍

1.1 InnoDB引擎:具备外键支持功能的事务存储引擎

  • InnoDB支持事务外键的功能。
  • InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。可以确保事务的完整提交(Commit)和回滚(Rollback)。
  • 除了增加和查询外,还需要更新、删除操作,那么,应优先选择InnoDB存储引擎。
  • 除非有非常特别的原因需要使用其他的存储引擎,否则应该优先考虑InnoDB引擎。
  • 数据文件结构:
    • 表名.frm 存储表结构(MySQL8.0时,合并在表名.ibd中)
    • 表名.ibd 存储数据和索引
  • InnoDB是为处理巨大数据量的最大性能设计。
  • 对比MyISAM的存储引擎, InnoDB写的处理效率差一些,并且会占用更多的磁盘空间以保存数据和索引。
  • MyISAM只缓存索引,不缓存真实数据;InnoDB不仅缓存索引还要缓存真实数据,对内存要求较高,而且内存大小对性能有决定性的影响。

1.2 MyISAM 引擎:主要的非事务处理存储引擎

  • 处理数据量比较小的表,访问的效率较高的。
  • MyISAM提供了大量的特性,包括全文索引、压缩、等,但MyISAM不支持事务、行级锁(只支持表级锁)、外键,有一个毫无疑问的缺陷就是崩溃后无法安全恢复。
  • 5.5之前默认的存储引擎
  • 优势是访问的速度快 ,对事务完整性没有要求或者以SELECT、INSERT为主的应用
  • 针对数据统计有额外的常数存储。故而 count(*) 的查询效率很高 数据文件结构:
    • 表名.frm 存储表结构
    • 表名.MYD 存储数据 (MYData)
    • 表名.MYI 存储索引 (MYIndex)
  • 应用场景:只读应用或者以读为主的业务

(重点)MyISAM和InnoDB引擎的对比
MyISAM引擎适用于小型应用,系统以读和插入操作为主,只涉及很少的更新删除操作,并对事务的要求较低,则可以选择MyISAM引擎。优点在于:占用空间小处理速度快;缺点是不支持事务的完整性和并发性。
InnoDB引擎,提供了良好的事务管理崩溃修复并发控制。InnoDB存储引擎支持事务,适用于对事务完整性的场合,还有更新和删除操作的数据准确性要求较高的财务系统。缺点是读写效率较低占用数据空间较大

MyISAM不支持外键、事务;只支持表级锁而不支持行级锁;只缓存索引,而不缓存真实数据。节省资源、消耗少、适用于简单业务。
InnoDB支持外键和事务;支持行级锁,操作时只锁定某一行,适合高并发的操作;不仅缓存索引还缓存真实数据,对内存的要求较高;支持并发写、需要更大的资源。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值