MySQL常见的存储引擎(InnoDB、MyISAM)data目录下(.frm,.myi,.myd)

查看支持的存储引擎

sql 复制代码
SHOW ENGINES;

show variables like '%storage_engine%'; 看你的mysql当前默认的存储引擎:

data目录

sql 复制代码
如果一个表同时有这3个文件,则存储引擎是myisam:
(1)*.frm--表定义,是描述表结构的文件。
(2)*.MYD--"D"数据信息文件,是表的数据文件。
(3)*.MYI--"I"索引信息文件,是表数据文件中任何索引的数据树。

1 InnoDB存储引擎 .frm .ibd

sql 复制代码
InnoDB存储引擎总支持AUTO_INCREMENT。自动增长列的值不能为空,并且值必须唯一。
MySQL中规定自增列必须为主键。在插入值的时候,如果自动增长列不输入值,则插入的值为自动增长后的值;
如果输入的值为0或空(NULL),则插入的值也是自动增长后的值;
如果插入某个确定的值,且该值在前面没有出现过,就可以直接插入。 
InnoDB还支持外键(FOREIGN KEY)。
外键所在的表叫做子表,外键所依赖(REFERENCES)的表叫做父表。
父表中被字表外键关联的字段必须为主键。
当删除、更新父表中的某条信息时,子表也必须有相应的改变,这是数据库的参照完整性规则。

1.1 存储 .frm .ibd

sql 复制代码
InnoDB中,创建的表的表结构存储在.frm文件中。 
数据和索引存储在innodb_data_home_dir和innodb_data_file_path定义的表空间中。

1.2 InnoDB的优势缺点

sql 复制代码
在于提供了良好的事务处理、崩溃修复能力和并发控制。 
支持事务安全的引擎,支持外键、行锁、事务是他的最大特点。
如果有大量的update和insert,建议使用InnoDB,特别是针对多个并发和QPS较高的情况。
Innodb支持事务和行级锁,是innodb的最大特色。 
缺点是读写效率较差,占用的数据空间相对较大。

1.3 InnoDB事务

sql 复制代码
innodb支持事务和行级锁,是innodb的最大特色。

事务的ACID属性:
	原子性(Atomicity)
	一致性(Consistency)
	隔离性(Isolation)
	持久性(Durability) 

并发事务带来的几个问题:
	更新丢失,脏读,不可重复读,幻读。 

事务隔离级别:
	读未提交(Read uncommitted),
	读已提交(Read committed),
	可重复读(Repeatable read),
	串行化(Serializable) show global variables like 'tx_isolation';

2 MyISAM存储引擎

sql 复制代码
MyISAM是MySQL中常见的存储引擎,曾经是MySQL的默认存储引擎。
MyISAM是基于ISAM引擎发展起来的,增加了许多有用的扩展。 
基于MyISAM存储引擎的表支持3种不同的存储格式。
包括静态型、动态型和压缩型。
其中,静态型是MyISAM的默认存储格式,它的字段是固定长度的;动态型包含变长字段,记录的长度不是固定的;
压缩型需要用到myisampack工具,占用的磁盘空间较小。

2.1 MyISAM的表存储成3个文件 .frm .myd .myi

sql 复制代码
文件的名字与表名相同。拓展名为frm、MYD、MYI。
frm文件存储表的结构;
myd文件存储数据,是MYData的缩写;
myi文件存储索引,是MYIndex的缩写。

2.2 MyISAM的优势缺点

sql 复制代码
MyISAM的优势在于占用空间小,处理速度快。 
缺点是不支持事务的完整性和并发性。 
不是事务安全的,而且不支持外键,如果执行大量的select,insert MyISAM比较适合 myisam只支持表级锁
相关推荐
做运维的阿瑞8 小时前
自连接、交叉连接与复杂 JOIN:一条问题链讲透
前端·数据库·mysql
charmingmm8158 小时前
数据库和数据表的设计和命名经验
数据库
小马同学-8 小时前
MySQL5.x源码安装
mysql
EatFan8 小时前
Spring Boot 4 迁移避坑清单:Jackson 3、starter 拆分与最低 JDK 口径核对(含若依/芋道/CRMEB 升级对照)
java·数据库·spring boot·spring boot 4·java 21·jakarta ee 11·jackson 3
其实防守也摸鱼8 小时前
渗透测试学习计划(全栈综合 · 零基础进阶)
android·数据库·学习·安全·oracle·自动化·学习方法
ZealSinger8 小时前
Go1.25 FlightRecorder慢请求截trace
网络·数据库·go
帷幕落秋9 小时前
Mysql的安装,加固与远程访问
运维·数据库
龙腾AI白云9 小时前
【轻量化大模型:低成本AI落地的产业新范式】
大数据·数据库·人工智能·机器学习
计算机编程指导师9 小时前
【计算机毕设选题】基于Hadoop的电信网络诈骗话术语义特征挖掘分析系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·数据库·python
IT古董9 小时前
《FDE前沿部署工程师实战教程》31 - Enterprise AI Reliability:Agent稳定性与生产运维体系
大数据·数据库·人工智能