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。

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

相关推荐
机器视觉知识推荐、就业指导35 分钟前
Qt/C++事件过滤器与控件响应重写的使用、场景的不同
开发语言·数据库·c++·qt
jnrjian41 分钟前
export rman 备份会占用buff/cache 导致内存压力
数据库·oracle
isNotNullX2 小时前
一文解读OLAP的工具和应用软件
大数据·数据库·etl
小诸葛的博客3 小时前
pg入门1——使用容器启动一个pg
数据库
sleP4o3 小时前
Python操作MySQL
开发语言·python·mysql
大熊程序猿4 小时前
python 读取excel数据存储到mysql
数据库·python·mysql
落落落sss4 小时前
sharding-jdbc分库分表
android·java·开发语言·数据库·servlet·oracle
jnrjian4 小时前
Oracle 启动动态采样 自适应执行计划
数据库·oracle
知识分享小能手4 小时前
mysql学习教程,从入门到精通,SQL DISTINCT 子句 (16)
大数据·开发语言·sql·学习·mysql·数据分析·数据库开发