0

0

小贝_mysql常见存储引擎区别_MySQL

php中文网

php中文网

发布时间:2016-06-01 12:59:42

|

1480人浏览过

|

来源于php中文网

原创

存储引擎区别

简要:
1、存储引擎
2、myisam与innodb区别

 

A1.art
A1.art

一个创新的AI艺术应用平台,旨在简化和普及艺术创作

下载

一、存储引擎

1、什么是存储引擎

通俗地讲就是存储和管理数据的方式

形象例子:

某处地方的自行车管理员:李某,张某。每天都有很多人来存取自行车。李某的管理方式是: 车主自行存放,李某也不记录对方存的是什么车。取车时则要交管理费。也不检查取的是否是对方自己的车。相反,张某,则在车主存放车时,记录存放人的特征以及对应车的信息。当人来取车时,张某还要小心核对,人与车的特征是否对应。

从上述例子可知:

a、从效率的角度来看: 李某比张某快,因为其不用进行校对

b、从安全性的角度来看: 张某比李某要安全,因为其进行了校对。

总结: 实际上,mysql的存储引擎也是这样工作,每种存储引擎都有自身的存取方式,因此在选择上,应该根据实际情况来定。

 

2、查看mysql所有引擎

mysql>show engines;

 

二、Myisam与Innodb的区别

之所以要区分这两种存储引擎,是因为它们是目前使用最频繁的mysql引擎,因此有必要对它们进行区分。有利于在实际情况下进行灵活运用。

1、myisam存储引擎

a、表构成

建立表mytest

 

create table mytest(id int unsigned,content char(5))engine=myisam;

表对应磁盘的文件

\

 

总结:

a1、后缀名为:frm为表结构文件,MYD为数据文件,MYI为索引文件

a2、建立myisam引擎的表,都会建立这三个文件,在进行mysql数据库备份或转移时,方便操作

b、批量插入数据

插入1000行数据

 

\

c、查询表的条数

\

 

总结: 从截图可以看到mysiam有对表的行数进行记录,而不是需要一条条去记录

d、是否支持事务

\

 

总结: myisam不支持事务,因此如果你在数据库进行事务操作,但是事务无法成功,你就要看你的表引擎了,看这种引擎是否支持事务。

e、对auto_increment列的操作(修改表mytest的id列)

 

\

插入数据

\

 

删除id为3的数据,然后在插入数据

\

 

这时发现,删除id为3后,继续添加的数据,id并不是从3开始,而是跳过3,从4开始算起。

处理方案:

删除数据后,重置auto_increment

\

\

 

总结: myisam引擎的表会对表中auto_increment进行存放,存放在文件磁盘上。即使是重启服务,也不会丢失。

\

 

2、innodb存储引擎

a、表结构

建立表myinnodb表

create table myinnodb(id int unsigned,content char(5))engine=innodb;

 

其中,frm为表结构文件,ibd为数据和索引文件

\

b、批量插入数据 (插入1000行数据)

 

\

c、查询表总条数

\

 

总结: innodb引擎的表,在计算总行数时,是一条条算

d、是否支持事务

\

 

总结: innodb引擎表支持事务操作

e、对auto_increment列的操作(修改表myinnodb的id列)

\

 

插入数据

\

 

删除id为3的数据

 

\

继续插入数据

\

 

发现这种情况跟myisam引擎的一致。

处理方案:

\

 

总结: innodb可以对auto_increment进行重置,但其对auto_increnment列仅被存储在主内存中,而不是存在磁盘上

\

 

重启服务

 

\

 

3、myisam与innodb的区别

 

myisam

innodb

文件构成

frm、MYD、MYI

frm、ibd

是否支持事务

MyISAM类型的表强调的是性能,其执行数度比InnoDB类型更快,但是不提供事务支持

InnoDB提供事务支持事务,外部键等高级数据库功能

计算表行数

select count(*) from table,MyISAM只要简单的读出保存好的行数,注意的是,当count(*)语句包含 where条件时,两种表的操作是一样的

InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行

 

锁的粒度

表锁

行锁

对AUTO_INCREMENT的操作

存放在磁盘上,可以通过alter进行重置

仅被存储在主内存中,而不是存在磁盘上

 

4、表锁与行锁的区别

在执行数据库写入的操作(insert,update,delete)的时候,mysiam表会锁表,而innodb表会锁行。通俗点说,就是你执行了一个update语句,那么mysiam表会将整个表都锁住,其他的insert和delete、update都会被拒之门外,等到这个update语句执行完成后才会被依次执行。

而锁行,就是说,你执行update语句是,只会将这一条记录进行锁定,只有针对这条记录的其他写入、更新操作会被阻塞并等待这条update语句执行完毕后再执行,针对其他记录的写入操作不会有影响。

 

5、myisam与innodb的选择

a、业务需要支持事务,选择innodb

b、业务查询居多,选择myisam

 

6、总结

MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。

InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

补充:

1、对于innodb的数据结构,首先要先理解两个概念性的问题:共享表空间以及独占表空间。

什么是共享表空间和独占表空间

共享表空间以及独占表空间都是针对数据的存储方式而言的。

共享表空间: 某一个数据库的所有表数据,索引文件全部放在一个文件中,默认这个共享表空间的文件路径在data目录下。默认的文件名为:ibdata1初始化为10M。

独占表空间: 每一张表都将会生成以独立的文件方式来进行存储,每一张表都有一个.frm表描述文件,还有一个.ibd文件。其中这个文件包括了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置之中。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
go语言 注释编码
go语言 注释编码

本专题整合了go语言注释、注释规范等等内容,阅读专题下面的文章了解更多详细内容。

2

2026.01.31

go语言 math包
go语言 math包

本专题整合了go语言math包相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

go语言输入函数
go语言输入函数

本专题整合了go语言输入相关教程内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

golang 循环遍历
golang 循环遍历

本专题整合了golang循环遍历相关教程,阅读专题下面的文章了解更多详细内容。

0

2026.01.31

Golang人工智能合集
Golang人工智能合集

本专题整合了Golang人工智能相关内容,阅读专题下面的文章了解更多详细内容。

1

2026.01.31

2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

76

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

73

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

67

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

19

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
CSS3 教程
CSS3 教程

共18课时 | 5.1万人学习

550W粉丝大佬手把手从零学JavaScript
550W粉丝大佬手把手从零学JavaScript

共1课时 | 0.3万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号