存储引擎

存储引擎的概念

  • 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:存储数据信息和索引信息。
posted @   BNTang  阅读(93)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示