千锋教育-做有情怀、有良心、有品质的职业教育机构

手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

当前位置:首页  >  技术干货  > 什么是存储引擎

什么是存储引擎

来源:千锋教育
发布人:zyh
时间: 2023-06-12 14:54:00 1686552840

  全文大约【1567】字,不说废话,只讲可以让你学到技术、明白原理的纯干货!本文带有丰富案例及配图视频,让你更好的理解和运用文中的技术概念,并可以给你带来具有足够启迪的思考......

什么是存储引擎

  一. 存储引擎介绍

  1.什么是存储引擎

  数据库最核心的一点就是用来存储数据,数据存储就避免不了和磁盘打交道。那么数据以哪种方式进行存储,如何存储是存储的关键所在。所以存储引擎就相当于是数据存储的发动机,来驱动数据在磁盘层面进行存储。不同的存储引擎功能差别很大。各位小伙伴不要着急,下面听小编逐一道来。

  查看存储引擎:  

SHOW ENGINES;

 

1685954175106.image

    2.InnoDB存储引擎

  特点:

  ● InnoDB存储引擎提供了具有提交、回滚和崩溃恢复能力的事务安全。相比较MyISAM存储引擎,InnoDB写的处理效率差一点并且会占用更多的磁盘空间保留数据和索引。

  ● 提供了对数据库事务ACID(原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)的支持,实现了SQL标准的四种隔离级别。

  ● 设计目标就是处理大容量的数据库系统,MySQL运行时InnoDB会在内存中建立缓冲池,用于缓冲数据和索引。

  ● 执行“select count(*) from table”语句时需要扫描全表,因为使用innodb引擎的表不会保存表的具体行数,所以需要扫描整个表才能计算多少行。

  ● InnoDB引擎是行锁,粒度更小,所以写操作不会锁定全表,在并发较高时,使用InnoDB会提升效率。即存在大量UPDATE/INSERT操作时,效率较高。

  ● InnoDB清空数据量大的表时,是非常缓慢,这是因为InnoDB必须处理表中的每一行,根据InnoDB的事务设计原则,首先需要把“删除动作”写入“事务日志”,然后写入实际的表。所以,清空大表的时候,最好直接drop table然后重建。即InnoDB一行一行删除,不会重建表。

  使用场景:

  ● 经常UPDETE/INSERT的表,使用处理多并发的写请求。

  ● 支持事务,必选InnoDB。

  ● 可以从灾难中恢复(日志+事务回滚)。

  ● 外键约束、列属性AUTO_INCREMENT支持。

  3.MyISAM存储引擎

  特点:

  ● MyISAM不支持事务,不支持外键,SELECT/INSERT为主的应用可以使用该引擎。

  ● 每个MyISAM在存储成3个文件,扩展名分别是:

  ○ frm:存储表定义(表结构等信息)。

  ○ MYD(MYData),存储数据。

  ○ MYI(MYIndex),存储索引。

  ● 不同MyISAM表的索引文件和数据文件可以放置到不同的路径下。

  ● MyISAM类型的表提供修复的工具,可以用CHECK TABLE语句来检查MyISAM表健康,并用REPAIR TABLE语句修复一个损坏的MyISAM表。

  ● 在MySQL5.6以前,只有MyISAM支持Full-text全文索引。

  使用场景:

  ● 经常SELECT/INSERT的表,插入不频繁,查询非常频繁。

  ● 不支持事务。

  ● 做很多count 的计算。

  4.MyISAM和Innodb区别

  下面小编给各位小伙伴梳理下,敲黑板啦,重点来啦。

  InnoDB和MyISAM是许多人在使用MySQL时最常用的两个存储引擎,这两个存储引擎各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理,而InnoDB类型支持。MyISAM类型强调的是性能,其执行速度比InnoDB类型更快,而InnoDB提供事务支持已经外部键等高级数据库功能。

  具体实现的差别:

  ● MyISAM是非事务安全型的,而InnoDB是事务安全型的。

  ● MyISAM锁的粒度是表级,而InnoDB支持行级锁定。

  ● MyISAM不支持外键,而InnoDB支持外键。

  ● MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。

  ● InnoDB表比MyISAM表更安全。

  二. 结语

  小编在这里对本文核心要点进行总结:

  1.MySQL最常用的存储引擎就是InnoDB和MyISAM这两个引擎,所以需要各位小伙伴熟记。

  2.默认的存储引擎是InnoDB支持事务、主外键关系。

tags: 存储引擎
声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。
10年以上业内强师集结,手把手带你蜕变精英
请您保持通讯畅通,专属学习老师24小时内将与您1V1沟通
免费领取
今日已有369人领取成功
刘同学 138****2860 刚刚成功领取
王同学 131****2015 刚刚成功领取
张同学 133****4652 刚刚成功领取
李同学 135****8607 刚刚成功领取
杨同学 132****5667 刚刚成功领取
岳同学 134****6652 刚刚成功领取
梁同学 157****2950 刚刚成功领取
刘同学 189****1015 刚刚成功领取
张同学 155****4678 刚刚成功领取
邹同学 139****2907 刚刚成功领取
董同学 138****2867 刚刚成功领取
周同学 136****3602 刚刚成功领取
相关推荐HOT