MySQL 常见存储引擎的区别

2023年12月机器人技术等级考试试卷(三级理论) 试题解析 阅读详情

MySQL 常见的存储引擎,可以使用

SHOW ENGINES

命令,来列出所有的存储引擎

EngineSupportCommentTransactionsXASavepoints
FEDERATEDNOFederated MySQL storage engine
MRG_MYISAMYESCollection of identical MyISAM tablesNONONO
MyISAMYESMyISAM storage engineNONONO
BLACKHOLEYES/dev/null storage engine (anything you write to it disappears)NONONO
CSVYESCSV storage engineNONONO
MEMORYYESHash based, stored in memory, useful for temporary tablesNONONO
ARCHIVEYESArchive storage engineNONONO
InnoDBDEFAULTSupports transactions, row-level locking, and foreign keysYESYESYES
PERFORMANCE_SCHEMAYESPerformance SchemaNONONO

InnoDB 是 MySQL 默认支持的存储引擎,支持事务、行级锁定和外键。

MyISAM 存储引擎的特点

在 5.1 版本之前,MyISAM 是 MySQL 的默认存储引擎,MyISAM 并发性比较差,使用的场景比较少,主要特点是

  • 不支持事务操作,ACID 的特性也就不存在了,这一设计是为了性能和效率考虑的。
  • 不支持外键操作,如果强行增加外键,MySQL 不会报错,只不过外键不起作用。
  • MyISAM 默认的锁粒度是表级锁,所以并发性能比较差,加锁比较快,锁冲突比较少,不太容易发生死锁的情况。
  • MyISAM 会在磁盘上存储三个文件,文件名和表名相同,扩展名分别是 .frm(存储表定义)、.MYD(MYData,存储数据)、MYI(MyIndex,存储索引)。这里需要特别注意的是 MyISAM 只缓存索引文件,并不缓存数据文件。
  • MyISAM 支持的索引类型有 全局索引(Full-Text)、B-Tree 索引、R-Tree 索引
  • Full-Text 索引:它的出现是为了解决针对文本的模糊查询效率较低的问题。
  • B-Tree 索引:所有的索引节点都按照平衡树的数据结构来存储,所有的索引数据节点都在叶节点
  • R-Tree索引:它的存储方式和 B-Tree 索引有一些区别,主要设计用于存储空间和多维数据的字段做索引,目前的 MySQL 版本仅支持 geometry 类型的字段作索引,相对于 BTREE,RTREE 的优势在于范围查找。
  • 数据库所在主机如果宕机,MyISAM 的数据文件容易损坏,而且难以恢复。
  • 增删改查性能方面:SELECT 性能较高,适用于查询较多的情况

InnoDB 存储引擎的特点

自从 MySQL 5.1 之后,默认的存储引擎变成了 InnoDB 存储引擎,相对于 MyISAM,InnoDB 存储引擎有了较大的改变,它的主要特点是

  • 支持事务操作,具有事务 ACID 隔离特性,默认的隔离级别是可重复读(repetable-read)、通过MVCC(并发版本控制)来实现的。能够解决脏读和不可重复读的问题。
  • nnoDB 支持外键操作。
  • InnoDB 默认的锁粒度行级锁,并发性能比较好,会发生死锁的情况。
  • 和 MyISAM 一样的是,InnoDB 存储引擎也有 .frm文件存储表结构 定义,但是不同的是,InnoDB 的表数据与索引数据是存储在一起的,都位于 B+ 数的叶子节点上,而 MyISAM 的表数据和索引数据是分开的。
  • InnoDB 有安全的日志文件,这个日志文件用于恢复因数据库崩溃或其他情况导致的数据丢失问题,保证数据的一致性。
  • InnoDB 和 MyISAM 支持的索引类型相同,但具体实现因为文件结构的不同有很大差异。
  • 增删改查性能方面,果执行大量的增删改操作,推荐使用 InnoDB 存储引擎,它在删除操作时是对行删除,不会重建表。

MyISAM 和 InnoDB 存储引擎的对比

  • 锁粒度方面:由于锁粒度不同,InnoDB 比 MyISAM 支持更高的并发;InnoDB 的锁粒度为行锁、MyISAM 的锁粒度为表锁、行锁需要对每一行进行加锁,所以锁的开销更大,但是能解决脏读和不可重复读的问题,相对来说也更容易发生死锁
  • 可恢复性上:由于 InnoDB 是有事务日志的,所以在产生由于数据库崩溃等条件后,可以根据日志文件进行恢复。而 MyISAM 则没有事务日志。
  • 查询性能上:MyISAM 要优于 InnoDB,因为 InnoDB 在查询过程中,是需要维护数据缓存,而且查询过程是先定位到行所在的数据块,然后在从数据块中定位到要查找的行;而 MyISAM 可以直接定位到数据所在的内存地址,可以直接找到数据。
  • 表结构文件上: MyISAM 的表结构文件包括:.frm(表结构定义),.MYI(索引),.MYD(数据);而 InnoDB 的表数据文件为:.ibd和.frm(表结构定义);
基于电阻分压 + 电压跟随器的直流母线电压采样电路 摘要:本文介绍了一种基于电阻分压和电压跟随器的直流母线电压采样电路设计。该电路通过R38(240kΩ)和R41(20kΩ)组成的分压网络将高电压(如48V)降至3V,再经GS8331运放构成的电压跟随器进行隔离缓冲,最后通过RC滤波输出给ADC采集。重点分析了关键元件的选型要求:分压电阻需高精度、低温度系数;运放需高输入阻抗、低失调电压;滤波电容需稳定性好。该设计适用于工业电源、新能源BMS、变频器等需要高精度电压采样的应用场景。 阅读详情

相关推荐

iStore增强插件 如何重塑家庭网络与存储体验

本文深入解析了iStore增强插件如何重塑家庭数字生活体验。它通过集成智能流控、一键式文件共享、媒体服务器及智能家居网关等功能,将复杂的网络配置、存储管理与设备协同简化为图形化操作,有效解决了家庭网络卡顿、数据割裂与使用门槛高等核心痛点,让普通用户也能轻松打造高效、稳定、安全的家庭数字中枢。

prometheus9mon的博客 648

Mysql底层剖析——各存储引擎的区别

1、是MySQL的默认事务性引擎,拥有自动崩溃恢复特性。2、将每个表的数据和索引都放在一起放在.ibd文件中。3、InnoDB有两个表,一个是.ibd文件,一个是.frm(存储数据结构通用)4、采用MVCC支持高并发,实现了四个标准的隔离级别,在REPEATED READ中通过实现间隙锁来防止幻读的出现。间隙锁使的InnoDB不仅仅锁定查询涉及的行,还会对索引中的间隙进行锁定,防止幻影行的插入。5、磁盘读取数据时采用可预测性预读,能够自动在内存中创建hash索引加速读操作的自适应哈希索引等。1、MyISAM

Durian_piza的博客 3481

群晖NAS实战:从零部署Container Manager与Docker代理配置全攻略

本文详细介绍了在群晖NAS上从零部署Container Manager与配置Docker代理的完整流程。针对国内用户常见的镜像拉取问题,提供了图形化界面与SSH命令行两种解决方案,并分享了MySQL容器部署的实战案例。文章特别强调了网络配置技巧和日常维护方法,帮助用户高效管理NAS上的容器应用。

weixin_29254673的博客 1302

面试遇到MySQL 存储引擎有哪几种,他们的区别是什么?

MySQL存储引擎是用来管理数据存储的组件,不同的存储引擎有不同的特点和适用场景。

qq_41866988的博客 2320

PyCharm中Matplotlib中文显示问题的终极解决方案

本文详细解析了PyCharm中Matplotlib中文显示问题的根本原因,并提供了从简单三行代码到深入配置的多套解决方案。针对Windows、Mac和Linux不同系统环境,分别推荐了最优字体配置方案,同时涵盖了PyCharm特定环境下的后端设置、字体路径指定等高级技巧,帮助开发者彻底解决中文乱码问题。

weixin_28221501的博客 303

(8)(8.19) GPIOs

Ardupilot官网关于《Copter》的翻译 —《(8.19) GPIOs》。

无人机开发(开源Ardupilot) 1万+

MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

简单来说,存储引擎就是指表的类型以及表在计算机上的存储方式。 存储引擎的概念是MySQL的特点,Oracle中没有专门的存储引擎的概念,Oracle有OLTP和OLAP模式的区分。不同的存储引擎决定了MySQL数据库中的表可以用不同的方式来存储。我们可以根据数据的特点来选择不同的存储引擎。 在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。下面重点关注InnoD...

weixin_30617695的博客 340

华为ensp、思科eve、华为ensp pro中通过cloud桥接本地网络和联通互联网的方法

华为ensp、思科eve中通过cloud桥接本地网络和联通互联网的方法

suofen9703的博客 416

MySQL四种存储引擎的区别

适用于需要高并发处理和高数据一致性的场景,如在线交易系统(OLTP)。适用于临时数据的存储和缓存,如网站的用户会话信息。‌:适用于大量读取的应用场景,支持全文索引和压缩表,适合高负载的select操作。适用于日志数据的转发,不进行数据存储和处理。‌:由于不支持事务,数据一致性较差,适用于对数据一致性要求不高的场景。‌:将数据保存在内存中,查询速度非常快,但数据在服务器关闭后会丢失。‌:适用于临时数据的存储和缓存,不适合持久化存储。‌:适用于日志数据的转发,不进行数据存储和处理。

weixin_63043528的博客 509

ThingsBoard教程(十九):规则节点概览介绍

在ThingsBoard的CE V2.5.6版本中,一共有这几种类型在每一种类都有包含了多个节点,每一种类型的节点都有不同的颜色表示本篇文章做一个简单的概括,后续的文章会详细讲解每一个种类的节点如何使用,每一个节点的使用。一共有10个,使用黄色表示 过滤器节点用于消息过滤和路由。一共有9个,使用绿色 属性节点用于更新传入消息的元数据。一共三个,使用蓝色 转换节点用于更改传入消息字段,如发起者、消息类型、有效负载和元数据。一共21个,使用红色标识 动作节点根据传入的消息执行各种动作。一共9个,使用黄色表示,

知无涯 1万+

ConvNeXt 系列改进:引入大核注意力(LKA)替换 7×7 深度卷积,涨点 2.1%

LSKA替换7×7深度卷积,在ImageNet分类任务上实现2.1%的显著提升,参数量仅增加1M。LSKA的四层1D分解将计算复杂度从O(k²)降至O(k),21×21大核的计算量仅相当于原版7×7的1.7倍,实现了感受野与计算成本的完美平衡。部署友好度极高:LSKA模块在TensorRT FP16量化后延迟仅1.2ms,精度损失<0.1%,远优于Transformer类模型。下游任务全面领先。

ZXSXJ的博客 700

MySQL数据库存储引擎有那些,有什么区别?

MySQL 提供了多种存储引擎,以满足不同场景下的数据存储需求。存储引擎是 MySQL 中用于处理表数据的模块,每种存储引擎都有自己的特点和使用场景。根据业务需求选择合适的存储引擎,可以充分发挥 MySQL 的性能和功能优势。适合需要事务支持、高并发访问以及外键约束的系统,如金融系统、订单系统等。适合读操作多于写操作的应用场景,如日志系统、报表系统。适合需要简单数据导入导出的场景,如数据备份或文件交换。适合需要高可用、高性能的大型分布式系统,如通信平台。适合临时数据存储,如缓存、会话数据、临时表等。

error_log7的博客 1530

从基础到前沿:深度剖析光束整形与扫描技术

光束扫描的核心在于通过特定手段改变光束的传播方向,从而实现对目标区域的扫描。在这个过程中,振镜、声光偏转器、电光偏转器等元件发挥着关键作用。振镜是一种常见的光束扫描元件,它主要由电机、反射镜和透镜组成。当电机驱动反射镜旋转时,根据光的反射定律,反射镜会改变入射光线的反射方向。假设初始时光束垂直入射到反射镜上,当反射镜绕某一轴旋转一定角度时,光束的反射方向就会相应改变,从而实现光束在空间中的扫描。在激光打标设备中,通过控制振镜的快速摆动,能够使激光束在工件表面快速移动,完成各种图案和文字的标记。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 2098

详解 MySQL 常见的存储引擎及它们之间的区别

InnoDB 支持事务和外键,更适合需要严格数据一致性和高并发处理的场景,而 MyISAM 则更适合读密集型应用。Memory 存储在内存中,速度快但数据易失;CSV 和 Archive 则分别适合数据交换和归档需求。Federated 实现跨服务器数据访问,Blackhole 用于数据丢弃,Merge 则用于逻辑上合并多个表的数据。

Weiki的博客 992

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

41.mysql常见的存储引擎,InnoDB,MyISAM的区别

41.mysql常见的存储引擎,InnoDB,MyISAM的区别 常见的有多种:InnoDB,MyISAM,MEMORY,ARCHIVE,CSV等。 一般比较常用的:InnoDB,MyISAM。 MySQL5.5以上的版本默认是InnoDB,5.5之前默认存储引擎是MyISAM。 InnoDB,MyISAM的区别: 区别项 IInnoDB MyISAM 事务 支持 ...

qq_39922867的博客 227

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

MySQL常见的存储引擎的区别?

在MySQL中的存储引擎有很多种,可以通过“SHOW ENGINES”语句来查看。比较常见的是InnoDB、MyISAM、MEMORY这三种。 1.InnoDB存储引擎 InnoDB给MySQL的表提供了事务处理、回滚、崩溃修复能力和多版本并发控制的事务安全。在MySQL从3.23.34a开始包含InnnoDB。它是MySQL上第一个提供外键约束的表引擎。而且InnoDB对事务处理的能力,也是...

猿小白的博客 1万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

MySQL常见的存储引擎和区别

MySQL 默认使用 InnoDB,因其事务支持和高并发能力,而其他引擎适用于特定场景(如归档、内存表等)。选择时需根据业务需求权衡事务、性能、存储成本等因素。

专注于技术分享 1211

Mysql的存储引擎的区别_MySQL 常见存储引擎的区别

MySQL 常见的存储引擎,可以使用SHOW ENGINES复制代码命令,来列出所有的存储引擎可以看到,InnoDB 是 MySQL 默认支持的存储引擎,支持事务、行级锁定和外键。MyISAM 存储引擎的特点在 5.1 版本之前,MyISAM 是 MySQL 的默认存储引擎,MyISAM 并发性比较差,使用的场景比较少,主要特点是不支持事务操作,ACID 的特性也就不存在了,这一设计是为了性能和效...

weixin_42470438的博客 117

MYSQL支持的三种常见存储引擎,以及他们的区别

简单理解就是存储数据时采用某些技术和方式来存储数据,不同的存储引擎也就代表不同的技术支持。

a2261370821的博客 448

MySQL常见的存储引擎的区别总结

  存储引擎就是针对于底层数据文件的存储方式。MySQL数据库是一种插件式存储引擎的数据库。MySQL中可以使用show engines;查看自带的存储引擎。 MyISAM   支持全文索引,不支持外键,不支持事务,表锁,B树(B+树)索引(数据和索引是分离开的,非聚集索引,保证了数据可以随机或离散的分布)。 InnoDB   不支持全文索引,支持外键,B树(B+树)索引(索引是数据的一部分,聚集索引,数据存储在索引上),行锁,支持事务。 MEMORY   数据在内存中存储,一般用于临时表能提升效率,var

cleverlemon的博客 282

MySQL常见的存储引擎InnoDB、MyISAM的区别

1)事务:MyISAM不支持,InnoDB支持2)锁级别: MyISAM 表级锁,InnoDB 行级锁MySQL表级锁有两种模式:表共享读锁(Table Read Lock)和表独占写锁(Table Write Lock)。InnoDB行锁是通过给索引项加锁来实现的,即只有通过索引条件检索数据,InnoDB才使用行级锁,否则将使用表锁!3)MyISAM存储表的总行数;InnoDB不存储总...

yuer629 71

MySql系列三:常见存储引擎及区别

MySQL 常见的存储引擎 可以使用命令SHOW ENGINES来列出所有的存储引擎 可以看到,InnoDB 是 MySQL(5.5.5版本之后) 默认支持的存储引擎,支持事务、行级锁定和外键。 MyISAM 存储引擎的特点 在5.5.5版本及之前的版本,MyISAM 是 MySQL 的默认存储引擎,MyISAM 并发性比较差,使用的场景比较少,主要特点是 不支持事务:ACID 的特性也就不存在了,这一设计是为了性能和效率考虑的; 不支持外键但支持全文索引:如果强行增加外键,MySQL...

白开水的博客 509

Mysql 中常见的存储引擎,特点和区别是什么?

Mysql 中常见的存储引擎,特点和区别是什么? InnoDB InnoDB是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。 安装的MySQL 5.6.13版以上,InnoDB就是作为默认的存储引擎。InnoDB还引入了行级锁定和外键约束,在以下场合下,使用InnoDB是最理想的选择: 更新密集的表。InnoDB存储引擎特别适合处理多重并发的更新请求。 事务。InnoDB存储引擎是支持事务的标准MySQL存储引擎。 自动灾难恢复。与其它

qq_50840738的博客 571

MySQL常见的存储引擎及区别?

InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量insert和update操作,应该选择InnoDB。·MyISAM管理非事务表,提供高速存储和检索以及全文搜索能力,如果在应用中执行大量select操作,应该选择MyISAM。外键约束其实降低了表的查询速度,增加了表之间的耦合度。2、使用的锁粒度默认为行级锁,可以支持更高的并发;MySQL常见的存储引擎及区别?

qq_41860765的博客 176

MySQl常见的存储引擎及区别

InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中大量insert和update操作,应该选择InnoDB。MyISAM管理非事务表,提供高速存储和检索以及全文搜索能力,如果在应用中大量执行select操作,应该选择MyISAM。外键约束其实降低的表的查询速度,增加了表之间的耦合度。使用的锁粒度默认为行级锁,可以支持更高的并发;

Wcl_Epiphany的博客 269

小贝_mysql 常见存储引擎区别

什么是存储引擎以及myisam与innodb区别

脚本小子-小贝的专栏 1179
上一篇: 解决Nginx: [error] open() "/usr/local/Nginx/logs/Nginx.pid“ failed(2:No such file or directory)
下一篇: windows下安装redis并设置自启动
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值