MySQL 常用储存引擎

news/2025/3/18 17:51:30/文章来源:https://www.cnblogs.com/houss/p/18775570

1一.存储引擎概述

定义‌:存储引擎是MySQL用于管理数据存储、查询、事务处理的底层组件。

‌核心作用‌:决定数据如何存储、索引如何组织、事务是否支持等。

点击查看mysql逻辑架构概述

查看数据库所支持的存储引擎

 SHOW ENGINES; 

Engine: 表示存储引擎的名称

Support: 表示服务器对存储引擎的支持情况,YES表示支持,NO表示不支持,DEFAULT表示数据库默认使用的存储引擎,DISABLED表示支持引擎但已将其禁用

Comment: 对存储引擎简单的描述

Transactions: 表示存储引擎是否支持事务,可以看到InnoDB存储引擎支持事务,而MyISAM存储引擎不支持事务

XA: 表示存储引擎是否支持XA事务

Savepoints: 表示存储引擎是否支持保存点

二.查看表所使用的引擎

USE TEST; -- 选中TEST数据库
SHOW TABLE STATUS; -- 查看所有表的信息
SHOW TABLE STATUS LIKE 'users'; -- 只查看users表信息

Name 表名

Engine 表的存储引擎

Version 表的版本号,通常为 10

Row_format 行格式,如 Compact、Dynamic 等

Rows 表中的行数,对于INNODB该值是估算的,其他存储引擎是准的

Avg_row_length 平均每行包含的字节数

Data_length 表数据的大小(以字节为单位)

Max_data_length 表的最大容量,该值和存储引擎有关

Index_length 索引的大小(以字节为单位)

Data_free 对于MyISAM表示已分配但目前没有使用的空间,这部分包括之前删除的行,以及和后续可以被insert利用到的空间

Auto_increment  下一个Auto_increment值

Create_time 表单创建时间

Update_time 表数据最后修改时间

Check_time 使用check time命令或者myisamchk工具最后一次检查表的时间

Collation 表的默认字符集和字符排列规则

Checksum 如果启用,保存的是整个表的实时校验和

Create_options 保存表时指定的其他选项.

Comment 该列包含了一些其他的额外的信息,对于MyISAM表,保存的是表在创建时带的注释,对于INNODB则保存的是INNODB表空间的剩余空间信息,如果是一个视图,则该列包含"VIEW"文本字样

三、索引分类

引擎事务支持锁粒度外键支持崩溃恢复存储限制索引类型适用场景
‌InnoDB‌ 支持 行级锁 支持 支持 64TB B+树聚簇索引 高并发事务、OLTP系统
‌MyISAM‌ 不支持 表级锁 不支持 不支持 256TB B+树非聚簇索引 读多写少、静态数据
‌Memory‌ 不支持 表级锁 不支持 内存限制 Hash/B树 临时表、缓存
‌Archive‌ 不支持 行级锁 不支持 支持 压缩存储,仅支持插入 日志、归档数据
‌CSV‌ 不支持 表级锁 不支持 文件限制 无索引 CSV文件交互

 

1. InnoDB

>‌核心特性‌:

  支持 ‌ACID事务‌,适合高并发场景。

  行级锁(默认) + MVCC(多版本并发控制)。

‌  聚簇索引‌:数据与主键索引绑定,提高查询效率。

  支持外键约束(Foreign Key)。

  崩溃后可通过 redo log 恢复。

  做了很多优化:可预测性读、自适应哈希索引、插入缓冲区、热备份

>‌存储文件‌:

  .ibd:表数据 + 索引(独立表空间模式)。

  ibdata1:系统表空间(共享模式)。

>‌适用场景‌:

  需要事务的OLTP系统(如订单、用户中心)。

  高并发读写(写比例不极端)。


2. MyISAM

‌>核心特性‌:

  ‌表级锁‌:读写互斥,并发性能低。

  支持全文索引(FULLTEXT)。

  非聚簇索引,数据与索引分离存储。

  较高的读取速度,写入较慢。

‌>存储文件‌:

  .MYD:数据文件。

  .MYI:索引文件。

  .frm:表结构文件。

‌>适用场景‌:

  读多写少的静态数据(如日志表、配置表)。

  数据仓库类应用(需配合压缩特性)。

‌注意‌:MySQL 8.0+ ‌未完全移除 MyISAM‌,但通过限制系统表、分区表等场景,逐步推动其退出主流使用。开发者应优先采用 InnoDB 引擎以适应官方技术路线‌


3. Memory

‌>核心特性‌:

  数据存储在内存中,重启后丢失。

  支持Hash索引(默认)和B树索引。

  表级锁,并发性能有限。

>适用场景‌:

  临时数据缓存(如会话信息)。

  快速查询中间结果。

>限制‌:

  不支持BLOB/TEXT类型。

  内存不足时转为磁盘存储(由max_heap_table_size控制)。


4. Archive

‌>核心特性‌:

  数据压缩存储(节省空间)。

  仅支持INSERTSELECT,删除/更新会重建表。

  行级锁,批量插入高效。

‌>适用场景‌:

  日志、审计数据归档。

  无需修改的历史数据存储。


5. CSV

>核心特性‌:

  数据以CSV格式存储,可直接用文本编辑器查看。

  不支持索引。

>适用场景‌:

  与外部系统交换CSV数据。


四、存储引擎选择指南

  1. ‌默认选择‌:‌InnoDB‌(MySQL 5.5+默认引擎)。
  2. ‌事务需求‌:必须选择InnoDB。
  3. ‌读写比例‌:
    • 读多写少且无事务 → MyISAM(旧版本)或 InnoDB(新版本)。
    • 高并发写入 → InnoDB(行级锁)。
  4. ‌临时数据‌ → Memory。
  5. ‌归档压缩‌ → Archive。
  6. ‌全文检索‌:InnoDB(MySQL 5.6+支持FULLTEXT)或外部搜索引擎(如Elasticsearch)。

五、代码示例

1. 指定引擎建表

CREATE TABLE users ( id INT PRIMARY KEY, name VARCHAR(50) ) ENGINE=InnoDB;

2. 修改引擎

ALTER TABLE users ENGINE=MyISAM;

 


六、注意事项

  1. ‌混合引擎风险‌:避免跨引擎事务(如InnoDB与MyISAM)。
  2. ‌备份策略‌:MyISAM需锁表备份,InnoDB支持热备(如mysqldump --single-transaction)。
  3. ‌配置优化‌:不同引擎需调整不同参数(如InnoDB的innodb_buffer_pool_size)。

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/901033.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

巧用输出变量,提升Dolphinscheduler工作流灵活性和可维护性

输出变量是 DolphinScheduler 任务调度中实现数据流动与任务协作的核心机制,通过显式定义和传递参数,解决了跨节点数据共享、优先级冲突等问题,同时支持复杂流程编排(如子流程、条件分支)。合理使用输出变量能显著提升工作流的灵活性和可维护性。本文将介绍 DolphinSchedu…

3.18 关系

1.1 笛卡尔积 序偶/元组 是有顺序的1.2 笛卡尔积与关系关系就两种:集合A上的二元关系/集合A到集合B的二元关系关系是笛卡尔积的子集 1.3 特殊关系

Spring AI Alibaba 应用框架挑战赛圆满落幕,恭喜获奖选手

Spring AI Alibaba 是一款 Java 语言实现的 AI 应用开发框架,用于加速和简化 Java 开发者的 AI 应用开发,定义 Spring 框架下的 AI 应用开发模式。本项目基于 Pivotal 公司开源的 Spring AI 开源项目构建,突出 Spring AI 与阿里云开源/商业生态的集成与最佳实践,集成范围涉…

干锅菜单

100001、 100002、 100003、 100004、 100005、 100006、 100007、 100008、本人前端水平有限,写的知识点可能有谬误,欢迎留言指正,如果看到,我将第一时间回复。感谢支持!

汤锅菜单

110001、 110002、 110003、 110004、本人前端水平有限,写的知识点可能有谬误,欢迎留言指正,如果看到,我将第一时间回复。感谢支持!

web153笔记(后端不能单⼀校验,后端校验要严密+过滤php+.user.ini文件包含)

这⼀次再传php就拦截下来了,这⾥开始可以⽤ .user.ini 来构造后⻔php.ini是php的⼀个全局配置⽂件,对整个web服务起作⽤;⽽.user.ini和.htaccess⼀样是⽬录的配置⽂件,.user.ini就是⽤户⾃定义的⼀个php.ini,我们可以利⽤这个⽂件来构造后⻔和隐藏后⻔。.htaccess是Apache…

VISIO-visio2013激活工具亲测有效

如果觉得对您有帮助 还请点赞收藏,谢谢~ 通过网盘分享的文件:激活工具 链接: https://pan.baidu.com/s/1y4FDjp59CoXtcB70_q1slA?pwd=sky1 提取码: sky1

安装ubantu报错VMware Workstation 与 Device/Credential Guard 不兼容

报错问题解决 1、按下WIN+R打开运行,然后输入services.msc回车; 2、在服务中找到 HV主机服务,双击打开设置为禁用3、win+x,然后打开powershell(管理员)运行命令:bcdedit /set hypervisorlaunchtype off 4、重启电脑

如何在 Github 上获得 1000 star?

作为程序员,Github 是第一个绕不开的网站。我们每天都在上面享受着开源带来的便利,我相信很多同学也想自己做一个开源项目,从而获得大家的关注。然而,理想很丰满,现实却是开发了很久的项目仍然无人问津。 最近,我的一个项目获得了超过 1000 star 的成绩,我认为这是一个重…

生活-家电: 论“内卷文化” + 品牌 VS 品质:记一起“知名品牌” 因 “商品设计缺陷”的退货经历

论“内卷文化” 如有不对欢迎指正。 起初,我也不知道"什么是内卷",面对现象级的"内卷文化"兴起, 各地"卷王不断", 实则是"阶层固化", "富贵阶级 压榨 普通民众的"另一"代称"? "富商贵族"多了第一批…