MySQL — 存储引擎

文章目录

存储引擎是数据库的核心,对于mysql来说,存储引擎是以插件的形式运行的。虽然mysql支持种类繁多的存储引擎,但是常用的就那么几种。这篇文章主要是对其进行简单的介绍。

存储引擎

MySQL可插拔存储引擎架构使数据库专业人员能够为特定的应用程序需求选择专门的存储引擎,同时完全不需要管理任何特定的应用程序编码需求。MySQL服务器架构将应用程序程序员和DBA与存储层的所有底层实现细节隔离开来,从而提供了一致且简单的应用程序模型和API。因此,尽管在不同的存储引擎之间存在不同的功能,但应用程序不会受到这些差异的影响。

可插拔存储引擎体系结构提供了一组标准的管理和支持服务,这些服务在所有底层存储引擎中都是通用的。存储引擎本身是数据库服务器的组件,它实际对维护在物理服务器级别的底层数据执行操作。

这种高效的模块化体系结构为那些希望专门针对特定应用程序需求(如数据仓库、事务处理或高可用性情况)的人提供了巨大的好处,同时享受利用一组独立于任何存储引擎的接口和服务的优势。

开发人员和DBA通过位于存储引擎之上的连接器api和服务层与MySQL数据库交互。如果应用有需要更改底层存储引擎的需求,或者需要添加一个或多个存储引擎以支持新需求,则不需要进行重大的编码或流程更改即可使其正常工作。MySQL服务器架构通过提供一个适用于存储引擎的一致且易于使用的API,使应用程序免受存储引擎底层复杂性的影响。

存储引擎类型

在数据库中我们可以通过 show engines来查看数据库当前支持的存储引擎。

简单的介绍其中几种存储引擎:

InnoDB

一款兼顾高可靠性和高性能的通用存储引擎。InnoDB目前是默认的MySQL存储引擎。除非你配置了不同的默认存储引擎,否则不带engine子句的CREATE TABLE语句会创建一个InnoDB表。

支持事务处理,支持外键,支持崩溃修复能力和并发控制。

如果需要对事务的完整性要求比较高(比如银行),要求实现并发控制(比如售票),那选择InnoDB有很大的优势。

如果需要频繁的更新、删除操作的数据库,也可以选择InnoDB,因为支持事务的提交(commit)和回滚(rollback)。

MyISAM

基于之前的ISAM存储引擎(不再可用),但有许多有用的扩展。MySQL5.5版本(不含)之前的数据库所默认的数据表引擎。

插入数据快,空间和内存使用比较低。如果表主要是用于插入新记录和读出记录,那么选择MyISAM能实现处理高效率。如果应用的完整性、并发性要求比较低,也可以使用。

MEMORY

以前称为HEAP,所有的数据都在内存中,数据的处理速度快,但是安全性不高。

如果需要很快的读写速度,对数据的安全性要求较低,可以选择MEMOEY。

它对表的大小有要求,不能建立太大的表。所以,这类数据库只使用在相对较小的数据库表。

相关推荐
while(1){yan}3 小时前
Spring事务
java·数据库·spring boot·后端·java-ee·mybatis
盛世宏博北京3 小时前
高效环境管控:楼宇机房以太网温湿度精准监测系统方案
开发语言·数据库·php·以太网温湿度变送器
运维行者_3 小时前
2026 技术升级,OpManager 新增 AI 网络拓扑与带宽预测功能
运维·网络·数据库·人工智能·安全·web安全·自动化
gfdhy3 小时前
【C++实战】多态版商品库存管理系统:从设计到实现,吃透面向对象核心
开发语言·数据库·c++·microsoft·毕业设计·毕设
Elastic 中国社区官方博客3 小时前
Elasticsearch:上下文工程 vs. 提示词工程
大数据·数据库·人工智能·elasticsearch·搜索引擎·ai·全文检索
小唐同学爱学习3 小时前
如何解决海量数据存储
java·数据库·spring boot·mysql
wWYy.4 小时前
详解redis(15):缓存雪崩
数据库·redis·缓存
zzcufo4 小时前
多邻国第五阶段第13部分
java·开发语言·数据库
这周也會开心4 小时前
Redis相关知识点
数据库·redis·缓存
小白爱运维4 小时前
MySQL升级8.0.44后登录报错-系统表不支持'MyISAM'存储引擎
数据库·mysql