存储引擎
存储引擎的概念
- MySQL 中的数据用各种不同的技术存储在文件(或者内存)中。
- 这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。
- 通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。
- 这些不同的技术以及配套的相关功能在 MySQL 中被称作存储引擎。
- 例如:如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)选择支持事务的存储引擎。
查看存储引擎
show engines;
查看当前使用的存储引擎
show variables like '%storage_engine%';
MyISAM 和 InnoDB 的区别
主外键
- MyISAM:不支持。
- InnoDB:支持。
事务
- MyISAM:不支持。
- InnoDB:支持。
行表锁
- MyISAM:表锁,操作一条记录也会锁住整个表,不适合高并发的操作。
- InnoDB:行锁,操作时, 只锁某一行, 不对其它行有影响,适合高并发的操作。
缓存
- MyISAM:只缓存索引, 不缓存数据。
- InnoDB:不仅缓存索引, 还要缓存真实数据, 对内存的要求比较高, 而且内存的大小对性能有决定性的影响。
表空间
- MyISAM:小。
- InnoDB:小。
关注点
- MyISAM:性能。
- InnoDB:事务。
默认安装
- MyISAM:是
- InnoDB:是
文件结构
MyISAM
b.frm
:描述表结构文件,字段长度等。b.MYD(MYData)
:数据信息文件,存储数据信息(如果采用独立表存储模式)b.MYI(MYIndex)
:索引信息文件。
InnoDB
b.frm
:描述表结构文件,字段长度等。b.ibd
:存储数据信息和索引信息。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具