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。

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

相关推荐
睡觉的时候不会困34 分钟前
Redis 主从复制详解:原理、配置与主从切换实战
数据库·redis·bootstrap
程序员的世界你不懂2 小时前
【Flask】测试平台开发,新增说明书编写和展示功能 第二十三篇
java·前端·数据库
自学也学好编程2 小时前
【数据库】Redis详解:内存数据库与缓存之王
数据库·redis
福赖2 小时前
《MySQL基础——用户管理》
mysql·用户管理
JAVA不会写3 小时前
在Mybatis plus中如何使用自定义Sql
数据库·sql
IT 小阿姨(数据库)3 小时前
PgSQL监控死元组和自动清理状态的SQL语句执行报错ERROR: division by zero原因分析和解决方法
linux·运维·数据库·sql·postgresql·centos
ChinaRainbowSea3 小时前
7. LangChain4j + 记忆缓存详细说明
java·数据库·redis·后端·缓存·langchain·ai编程
小马学嵌入式~5 小时前
嵌入式 SQLite 数据库开发笔记
linux·c语言·数据库·笔记·sql·学习·sqlite
Java小白程序员5 小时前
MyBatis基础到高级实践:全方位指南(中)
数据库·mybatis
Monly215 小时前
人大金仓:merge sql error, dbType null, druid-1.2.20
数据库·sql