数据库引擎基本介绍

一、什么是引擎?

简单来说:接收上层传下来的指令,然后对表中的数据进行提取或写入操作。

       数据库引擎就是一个“数据库发动机”。当你访问数据库时,不管是手工访问还是程序访问,都不是直接读写数据库文件,而是通过数据库引擎去访问数据库文件。 以关系型数据库为例,发SQL语句给数据库引擎,数据库引擎会解释SQL语句,提取出你需要的数据返回给你。因此,对访问者来说,数据库引擎就是SQL语句的解释器。

正式来说

        数据库引擎是用来存储、处理和保护数据的核心服务。利用数据库引擎可以控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求,这包括创建用于存储数据的表和用于查看、管理和保护数据安全的数据库对象(如索引、视图和存储过程)


二、MySQL引擎的类别

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

  InnoDB存储引擎是MySQL灵活性技术直接产品,这项技术就是mysql+api

特点

  1. InnoDB被设计用来处理大量的短期事务,可以确保事务的完整提交和回滚。

  2. InnoDB为mysql表提供了ACID事务支持、系统崩溃修复能力(因为支持事务)和多版本并发控制的行级锁,该引擎提供了行级锁和外键约束,所以 InnoDB是事务型数据库的首选引擎。

  3. 采用B+树实现,索引与数据存储在同一文件中

  4. 除了增加和查询(增加和查询推荐使用MyISAM引擎)外,还需要更新、删除操作,那么优先选择InnoDB引擎。

  5. 数据文件结构:

    1. 表名.frm  存储表结构(MySQL8.0时,合并在表名.ibd中)

    2. 表名.ibd  存储数据和引擎

缺点

  1. InnoDB写的处理效率差

  2. InnoDB不仅缓存索引,还要缓存真实数据, 对内存要求高

🎀MyISAM引擎

  MyISAM使用一种表格锁定的机制(表级锁),来优化多个并发的读写操作,MyISAM强调了快速读取操作。这可能就是为什么MySQL受到了WEB开发如此青睐的主要原因:在WEB开发中所进行的大量数据操作都是读取操作,但不支持事务。

特点

  1. MyISAM提供大量的特性,包括全文索引、压缩、空间函数(GIS)等,但MyISAM不支持事务、行级锁、外键

  2. 访问速度快

  3. 应用场景:只读应用或者以读为主的业务

缺点

  1. 崩溃后无法安全恢复,因为不支持事务

  2. 不支持行级锁、外键

🎀ISAM引擎

   是一个定义明确且历经时间考验的数据表格管理方法,它在设计时就考虑到了数据库被查询的次数要远大于更新的次数。因此,ISAM执行读取操作的速度很快,而且不占用大量的内存和存储资源

ISAM的结构如下图:

 相当于多叉平衡树

数矮;能减少硬盘I/O次数

节点记录多:一次性读取更多数据

不足:不支持事务处理、不支持外键、不能容错、不支持索引。如果硬盘崩溃了,则数据文件就无法恢复。

🎀Heap引擎

  Heap引擎就是将数据存储在内存中,由于没有磁盘I/O的等待,所以使用这种引擎的表有极高的插入、更新和查询效率。这种存储引擎使用哈希索引,由于这种存储索引的数据保存在内存中,所以其保存的数据具有不稳定性,比如mysql进程发生异常、重启或计算机关机等都会造成这些数据的消失,所以这种存储引擎中的表生命周期很短,一般只使用一次。

好啦,就先到这里吧~
喜欢我的可以点赞、关注、收藏,如果有什么技术上的疑问,欢迎留言或私信~

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值