两种主要MySQL表存储结构MyISAM和InnoDB比较

MySQL深入学习 --- MySQL存储引擎,InnoDB、MyISAM索引的数据结构 文章目录四、MySQL存储引擎4.1 InnoDB引擎:具备外键支持功能的事务存储引擎4.2 MyISAM 引擎:主要的非事务处理存储引擎4.3 Memory 引擎:置于内存的表小结:五、索引的数据结构5.1 为什么使用索引5.2 索引及其优缺点1.索引概述2.优点3.缺点5.3 InnoDB中索引的推演1.简单的索引设计方案2.InnoDB的索引方案①迭代1次:目录项纪录的页②迭代2次:多个目录项纪录的页③ 迭代3次:目录项记录页的目录页④B+Tree3.常见索引概念3.1 聚簇索引`优点:``缺点:`3 阅读详情

转至:http://www.codesky.net/article/201011/147080.html

摘要:MyISAM 是MySQL关系数据库管理系统的默认储存引擎,而InnoDB是MySQL的另一个存储引擎,正成为目前MySQL AB所发行新版的标准,下文对这两者进行了比较,供您参考。

MySQL表存储结构是MySQL数据库的重要组成部分,下面就为您介绍两种主要MySQL表存储结构--MyISAM和InnoDB,希望对您能有所帮助。

什么是MyISAM?

MyISAM是MySQL关系数据库管理系统的默认储存引擎。这种MySQL表存储结构从旧的ISAM代码扩展 出许多有用的功能。在新版本的MySQL中,InnoDB引擎由于其对事务,参照完整性,以及更高的并发性等优点开始广泛的取代MyISAM。

每一个MyISAM表都对应于硬盘上的三个文件。这三个文件有一样的文件名,但是有不同的扩展名以指示其类型用 途:.frm文件保存表的定义,但是这个文件并不是MyISAM引擎的一部,而是服务器的一部分;.MYD保存表的数据;.MYI是表的索引文件。

什么是InnoDB?

InnoDB是MySQL的另一个存储引擎,正成为目前MySQL AB所发行新版的标准,被包含在所有二进制安装包里。较之于其它的存储引擎它的优点是它支持兼容ACID的事务(类似于PostgreSQL),以及参数 完整性(即对外键的支持)。

Oracle公司与2005年10月收购了Innobase。Innobase采用双认证授权。它使用GNU发 行,也允许其它想将InnoDB结合到商业软件的团体获得授权。

两种主要MySQL表存储结构MyISAM和InnoDB比较[转] - 雨泽 - 雨泽

目前比较普及的存储引擎是MyISAM和InnoDB.而MyISAM又是绝大部分Web应用的首 选。 MyISAM与InnoDB的主要的不同点在于性能和事务控制上。

MyISAM是早期ISAM(Indexed Sequential Access Method,现在用的MySQL5.0已经不支持ISAM了)的扩展实现,ISAM被设计为适合处理读频率远大于写频率这样一种情况,因此ISAM以及 后来的MyISAM都没有考虑对事物的支持,排除了TPM,不需要事务记录,ISAM的查询效率相当可观,而且内存占用很少。MyISAM在继承了这类优 点的同时,与时俱进的提供了大量实用的新特性和相关工具。例如考虑到并发控制,提供了表级锁,虽然MyISAM本身不支持容错,但可以通过 myisamchk进行故障恢复。而且由于MyISAM是每张表使用各自独立的存储文件(MYD数据文件和MYI索引文件),使得备份及恢复十分方便(拷 贝覆盖即可),而且还支持在线恢复。与其他存储引擎比较,MyISAM具有检查和修复表格的大多数工具. MyISAM表格可以被压缩,而且它们支持全文搜索.它们不是事务安全的,而且也不支持外键

所以如果你的应用是不需要事务,处理的只是基本的CRUD操作,那么MyISAM是不二选择

InnoDB被设计成适用于高并发读写的情况.使用MVCC(Multi-Version Concurrency Control)以及行级锁来提供遵从ACID的事务支持。InnoDB支持外键参照完整性,具备故障恢复能力。另外 InnoDB的性能其实还是不错的,特别是在处理大数据量的情况下,用官方的话说就是: InnoDB的CPU效率是其他基于磁盘的关系数据库存储引擎所不能比的。不过InnoDB的备份恢复要麻烦一点,除非你使用了4.1以后版本提供的 Mulit-tablespace支持,因为InnoDB和MyISAM不同,他的数据文件并不是独立对应于每张表的。而是使用的共享表空间,简单的拷贝 覆盖方法对他不适用,必须在停掉MYSQL后对进行数据恢复。使用Per-Table Tablespacesd,使其每张表对应一个独立的表空间文件,则情况要简单很多。它与BDB类型具有相同的特性,它们还支持外键.InnoDB表格速 度很快.具有比BDB还丰富的特性,因此如果需要一个事务安全的存储引擎,建议使用它.

一般来说,如果需要事务支持,并且有较高的并发读写频率,InnoDB是不错的选择。要是并发读写频率不高的话,其实可以考虑BDB,但由于在 MySQL5.1及其以后版本中,将不再提供BDB支持。这个选项也就没有了

InnoDB默认情况下的事务是打开的(set autocommit = 0)就是说每插入一条记录时候,InnoDB类型的表都会把它当作一个单独的事务来处理.所以如果我们插入了10000条记录,而且没有将事务关闭,那么 InnoDB类型的表会把它当作10000个事务来处理,此时插入的总时间是很多的,这个时候一定要首先把事务关掉再插入,这样的速度就很快了 

至于Heap和BDB(Berkeley DB),相对来说,普及率不如前两种,但在有些情况下,还是挺适用的

Heap存储引擎就是将数据存储在内存中,由于没有磁盘I./O的等待,速度极快。但由于是内存存储引擎,所做的任何修改在服务器重启后都将消失。

Heap挺适合做测试的时候使用

BDB是MySQL第一款事务安全的存储引擎。在Berkeley DB database library的基础上建立,同样是事务安全的,但BDB的普及率显然不及InnoDB,因为大多数在MySQL中寻找支持事务的存储引擎的同时也在找支 持MVCC或是行级锁定存储引擎,而BDB只支持Page-level Lock。

附上一张《High Performance MySQL》 中的各存储引擎的特性表

两种主要MySQL表存储结构MyISAM和InnoDB比较[转] - 雨泽 - 雨泽

MySQL 两种存储引擎:MyISAM与InnoDB对比及理解 MySQL 两种存储引擎:MyISAM与InnoDB对比及理解 目前MySQL默认的存储引擎是InnoDB 现在大多数时候我们使用的都是InnoDB存储引擎,但是在某些情况下使用MyISAM更好,比如:MyISAM更适合读密集的表,而InnoDB更适合写密集的的表。 在数据库做主从分离的情况下,经常选择MyISAM作为主库的存储引擎 二者的常见对比 count运算上的区别: 因为MyISAM缓存有表meta-data(行数等),因此在做COUNT(*)时对于一个结构很好的查询是不需. 阅读详情

相关推荐

MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

myisam与innodb的存储结构

一、常用的存储引擎 二、存储引擎特性区别 三、数据存取方式 一、常用的存储引擎 myisam、innodb 二、存储引擎特性区别 1.事务方面 innodb支持事务.myisam不支持事务 2.外键方面 innodb支持外键,myisam不支持外键 3.索引方面 innodb是聚集索引(聚簇索引),myisam是非聚集索引(非聚簇索引) innodb不支持FULLTEXT类型全文索引,myisam支持FULLTEXT类型全文索引 4.颗粒度方面 innod...

qq_38829280的博客 1167

Mid-360激光雷达与Fast-LIO2实战:从环境搭建到实时点云建图

本文提供Livox Mid-360激光雷达与Fast-LIO2算法从零开始的实战教程。详细介绍了在Ubuntu和ROS环境下进行系统配置、依赖安装、硬件连接与网络设置的完整流程,并指导如何运行算法实现实时点云建图与可视化,最后总结了关键参数调优与常见问题排查方法。

weixin_29300241的博客 152

mysql myisam 存储结构_Innodb、MYISAM的文件存储结构

MySQL的每个数据库都对应存放在一个与数据库同名的文件夹中,MySQL数据库文件包括MySQLserver所创建的数据库文件和MySQL所用存储引擎创建的数据库文件。查看MySql数据库物理文件存放位置1、MySQL创建并管理的数据库文件:.frm文件:存储数据表的框架结构,文件名与表名相同,每个表对应一个同名frm文件,与操作系统和存储引擎无关,即不管MySQL运行在何种操作系统上,使用何种存...

weixin_29669899的博客 1063

华为HPLC模组全拆解之电力载波收发原理分析

电力线载波通信(PLC)是一种使用电力线进行数据传输的通信技术,即利用现有电网作为信号的传输介质,使电网在传输电力的同时可以进行数据传输。目前根据所用频段的不同,低压电力线载波通信一般分为窄带电力线载波通信(10KHz~500KHz)和宽带电力线载波通信(2MHz~20MHz)。这里的频率可以简单理解为单片机串口的通信波特率,频率越小通信速度越慢,频率越大通信速度越快。为了研究电力载波通信原理,笔者以华为的一款宽带电力载波模组为例进行详细的分析,该模组主控采用的是海思芯片,型号为Hi3921EV100。

xingxingdiandeng69的博客 2万+

STM32硬件SPI调试ADS1256的3个致命坑,CubeMX配置避坑指南

本文深入解析STM32硬件SPI调试ADS1256高精度ADC芯片时常见的3大配置陷阱,包括SPI时钟频率、时钟极性与相位、数据字节序等关键问题。通过CubeMX实战配置指南和实测数据对比,提供稳定可靠的解决方案,帮助开发者避免常见错误,提升采样精度和系统稳定性。

weixin_42550597的博客 346

我理解的myisam引擎之六 MYI、MYD文件的解析

文件内容解析以下面的表结构和内容举例。 mysql> create table t_isam_10 (id int ,id1 int ,c1 varchar(10) )engine=myisam; Query OK, 0 rows affected (0.11 sec) mysql> alter table t_isam_10 add index idx_id(id) key_block_size=2048; Query OK, 0 rows affected (0.14 sec) Reco

w1346561235的博客 2215

AgentScope Java多智能体框架

AgentScope Java 的核心设计理念是“Agent-Oriented Programming” (面向智能体编程)。

zzz19920821的博客 1733

【Mysql】MySQL体系结构,InnoDB、MyISAM存储引擎,索引结构、分类、语法、性能分析

MySQL官方对索引的定义为:索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护者满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。如下面的示意图所示 :左边是数据表,一共有两列七条记录,最左边的是数据记录的物理地址(注意逻辑上相邻的记录在磁盘上也并不是一定物理相邻的)。

qq_60969145的博客 1260

RTC温度补偿:如何让时间分秒不差?

RTC(实时时钟)温度补偿技术通过"检测温度→计算误差→动态调整频率"的闭环机制,解决振荡器频率随温度变化导致的时间误差问题。核心步骤包括:1)高精度温度检测;2)基于温度-频率误差模型计算偏差;3)通过硬件(可编程电容/DAC)或软件方式调整振荡频率。该技术需突破温度检测精度、误差模型拟合、频率调整分辨率等关键点,根据不同应用场景(消费电子±5ppm至军工±0.1ppm)选择匹配方案。典型实现如STM32的分段线性补偿算法,可将工业级RTC精度提升至±2ppm以内。

上市公司前技术负责人,20 年软硬件深耕 + 百人研发团队管理经验,名校理工科背景加持。从技术攻坚到团队掌舵,沉淀海量项目实战与管理心得,专注分享软硬件干货、疑难问题解决方案,既是靠谱知识传播者,也盼链接优质项目共成长。 1228

uniapp(全端兼容) - 实现点击输入框时完美顶起键盘,获取键盘高度动态计算顶起距离,解决软键盘弹出时输入框被覆盖问题,uniapp微信小程序/移动端h5网页/安卓苹果app(示例代码,一键复制

uniapp,支付宝微信小程序,移动端H5网页网站,软键盘弹出位置不对,软键盘挡住了输入框怎么办,获取键盘高度计算弹出距离,uniapp如何解决输入框input激活后键盘弹出遮挡问题,uniapp输入框偶尔被键盘遮挡,解决uniapp在App环境下输入框被软键盘遮挡的问题,uniapp 完美解决苹果和安卓input框遮挡兼容问题,uniapp输入框拉起软键盘时,输入框显示不全,被软键盘挡住一半,input被键盘遮挡的解决方案,软键盘遮挡输入框,uniapp软键盘顶不起来输入框,输入框没有被软键盘弹出来怎么办

✅ 精选推荐文章 1万+

MySQL两种主要表存储结构MyISAM和InnoDB比较

<br />什么是MyISAM?<br />      MyISAM是MySQL关系数据库管理系统的默认储存引擎。它从旧的ISAM代码扩展出许多有用的功能。在新版本的MySQL中,InnoDB引擎由于其对事务,参照完整性,以及更高的并发性等优点开始广泛的取代MyISAM。<br />每一个MyISAM表都对应于硬盘上的三个文件。这三个文件有一样的文件名,但是有不同的扩展名以指示其类型用途:.frm文件保存表的定义,但是这个文件并不是MyISAM引擎的一部,而是服务器的一部分;.MYD保存表的数据;.MYI是

赏风听雨的专栏 484

SKUA-GOCAD入门教程-第八节 线的创建与编辑7和8

本文介绍了曲线编辑操作的主要功能,包括曲线部分和区域的管理操作。在曲线部分操作方面,详细说明了如何合并、删除、移动和过滤曲线部分,支持精确或带公差的合并方式。在曲线区域操作方面,阐述了保留/删除区域点、移动区域点、保留/删除区域线段等操作。此外还介绍了节点连接功能,包括新增/删除连接、端点连接以及为曲线赋予地质特征的方法。

江洋大葱的博客 390

【MySQL】InnoDB和MyISAM区别

【MySQL】InnoDB和MyISAM区别。

qq_37746483的博客 3138

【应用】打造你的安全本地AI购物助手:OpenClaw + 淘宝MCP部署全攻略

本文介绍了在Ubuntu虚拟机中配置OpenClaw连接Windows宿主机的淘宝MCP服务的两种方案。核心原理是通过修改MCP服务监听地址或SSH隧道转发,实现跨网络访问。方案1推荐修改MCP服务绑定0.0.0.0并配置防火墙放行端口,适合长期使用;方案2通过SSH隧道转发,适合临时测试。文章详细说明了环境准备、配置文件修改及两种互通方案的具体实施步骤,重点解决了虚拟机与宿主机网络互通的关键问题。

海兰 1318

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

【MySQL】InnoDB和MyISAM区别详解(MySQL专栏启动)

文本适合解决:你们公司用什么存储引擎?InnoDB和MyISAM 区别?为什么选择InnoDB?什么事聚簇索引什么是非聚簇索引?InnoDB如何存储数据?如何选择存储引擎?InnoDB为什么推荐用自增ID做主键?等类似的问题。

小明的Java问道之路 4960

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

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

MySQL 数据库中 MyISAM 和InnoDB 的区别

MyISAM 在写入时会阻塞所有读写操作,InnoDB 的行级锁仅锁定修改的行,适合高并发场景(如电商、社交应用)。是两种最常用的存储引擎,它们在功能、性能和适用场景上有显著区别。InnoDB 适合需要事务的场景(如支付、订单系统),MyISAM 仅适合非事务性操作。对于全文搜索需求,MyISAM 在旧版本中更优,但现代 InnoDB 已足够强大。InnoDB 的聚簇索引提升主键查询效率,但插入数据时可能需要页分裂优化。InnoDB 的缓冲池可显著提升频繁读写场景的性能(如 OLTP 系统)。

weixin_59215397的博客 1892

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

MySQL的存储引擎(InnoDB与MyISAM)

Mysql 底层数据引擎以插件形式设计,最常见的是 Innodb 引擎和 Myisam 引擎,用户可以根据个人需求选择不同的引擎作为 Mysql 数据表的底层引擎。 MyISAM 存储引擎 是 MySQL 中常见的存储引擎,虽然性能极佳, 拥有较高的插入,查询速度,但却不支持事务处理(transaction),不支持外键。曾(MySQL 5.5及之前版本)是 MySQL 的默认存储引擎。 InnoDB 存储引擎 是MySQL的数据库引擎之一,现为MySQL的默认存储引擎,事务型数据库的首选引擎

MrYushiwen的博客 2888

MySQL常用存储引擎MyISAM和InnoDB的区别和比较

引言 现在,MySQL数据库常用的存储引擎为MyISAM和InnoDB。MyISAM在MySQL 5.5之前一直是默认的存储引擎,不过在近些年来MySQL的发展下,InnoDB逐渐替代了MyISAM存储引擎。本文从锁机制、事务、存储结构、索引等角度来分析这两个存储引擎之间的差异。 锁机制 MySQL的锁机制相对于其它数据库产品而言比较简单,可以分为3类: 1、表级锁:开销小,加锁快,不会出现死锁,...

APlus 3695

MySQL引擎MyISAM和InnoDB的比较

✅ 支持缓冲池(Buffer Pool),减少磁盘 I/O,提升高频访问数据的性能。(Table-level Locking),并发写入时容易阻塞(如批量插入或更新)。✅ 支持外键(Foreign Key),保证数据完整性(级联更新/删除)。(如高并发事务处理)性能更优,得益于行级锁和 MVCC(多版本并发控制)。:数据按主键顺序存储,主键查询极快,但二级索引需两次查找(主键→数据行)。(如数据分析、日志查询)性能更优,因为其索引结构(非聚簇索引)简单。等事务操作,适合需要数据一致性的场景(如金融交易)。

looken1024的博客 1152

MySQL 中 InnoDB和Myisam

MySQL 中 InnoDB和Myisam

梭哈是一种智慧 1633

深入学习 Mysql 引擎 InnoDB、MyISAM

MySQL 引擎 InnoDB 和 MyISAM 是 MySQL 中常用的两种存储引擎,它们具有以下不同的特点

激流丶的博客 3550

MyISAM 与 InnoDB

文章目录前言区别存储结构存储空间存储特性事务支持主键自增表锁差异全文索引表主键CRUD外键选择后记 前言 喝水不忘打井人,既然在用 MySQL,就应该了解其工作原理,今儿就来探讨一番它的引擎,这同样也是面试热点; 接下来通过对比来呈现;   区别 InnoDB:MySQL 默认的事务型引擎,也是最重要和使用最广泛的存储引擎。它被设计成为大量的短期事务,短期事务大部分情况下是正常提交的,很少被回滚。InnoDB 的性能与自动崩溃恢复的特性,使得它在非事务存储需求中也很流行。除非有非常特别的原因需要使

sid10t. 2万+

mysql myisam表_MySQL两种表存储结构MyISAM和InnoDB的性能比较测试

MySQL支持的两种主要表存储格式MyISAM,InnoDB,上个月做个项目时,先使用了InnoDB,结果速度特别慢,1秒钟只能插入10几条。后来换成MyISAM格式,一秒钟插入上万条。当时决定这两个表的性能也差别太大了吧。后来自己推测,不应该差别这么慢,估计是写的插入语句有问题,决定做个测试:测试环境:Redhat Linux9,4CPU,内存2G,MySQL版本为4.1.6-gamma-sta...

weixin_39570838的博客 203

深入解析MySQL存储引擎:MyISAM与InnoDB的存储结构揭秘

MySQL作为最流行的关系型数据库之一,其核心魅力在于支持多种存储引擎,尤其是MyISAM和InnoDB这两种最常用的引擎。了解它们的底层存储结构对于数据库优化和故障排查至关重要。本文将深入探讨这两种引擎的存储机制,揭示它们性能差异的本质原因。

weixin_51786043的博客 1522
上一篇: Berkeley DB -- 主从复制(HA)下部
下一篇: MVCC
whycold
博客等级 码龄19年 280粉丝 44原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值