Mysql:数据库引擎

article/2025/11/7 20:46:49

废话不多说,我们先看MySql 用到了那些引擎

SHOW ENGINES

直接可以看到有下面这些引擎 InnoDB,MRG_MYISAM,MEMORY,BLACKHOLE,MyISAM,CSV,ARCHIVE,PERFORMANCE_SCHEMA,FEDERATED

 

那么每个引擎对应的有什么用呢?他们之间的关系又是怎样的呢?

InnoDB

InnoDB是事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键,InnoDB是默认的MySQL引擎。InnoDB主要特性有:

1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储引擎。InnoDB锁定在行级并且也在SELECT语句中提供一个类似Oracle的非锁定读。这些功能增加了多用户部署和性能。在SQL查询中,可以自由地将InnoDB类型的表和其他MySQL的表类型混合起来,甚至在同一个查询中也可以混合

2、InnoDB是为处理巨大数据量的最大性能设计。它的CPU效率可能是任何其他基于磁盘的关系型数据库引擎锁不能匹敌的

3、InnoDB存储引擎完全与MySQL服务器整合,InnoDB存储引擎为在主内存中缓存数据和索引而维持它自己的缓冲池。InnoDB将它的表和索引在一个逻辑表空间中,表空间可以包含数个文件(或原始磁盘文件)。这与MyISAM表不同,比如在MyISAM表中每个表被存放在分离的文件中。InnoDB表可以是任何尺寸,即使在文件尺寸被限制为2GB的操作系统上

4、InnoDB支持外键完整性约束,存储表中的数据时,每张表的存储都按主键顺序存放,如果没有显示在表定义时指定主键,InnoDB会为每一行生成一个6字节的ROWID,并以此作为主键

5、InnoDB被用在众多需要高性能的大型数据库站点上

InnoDB不创建目录,使用InnoDB时,MySQL将在MySQL数据目录下创建一个名为ibdata1的10MB大小的自动扩展数据文件,以及两个名为ib_logfile0和ib_logfile1的5MB大小的日志文件

 


MRG_MYISAM


MEMORY

MEMORY存储引擎将表中的数据存储到内存中,未查询和引用其他表数据提供快速访问。MEMORY主要特性有:

1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500字节的最大键长度

2、MEMORY存储引擎执行HASH和BTREE缩影

3、可以在一个MEMORY表中有非唯一键值

4、MEMORY表使用一个固定的记录长度格式

5、MEMORY不支持BLOB或TEXT列

6、MEMORY支持AUTO_INCREMENT列和对可包含NULL值的列的索引

7、MEMORY表在所由客户端之间共享(就像其他任何非TEMPORARY表)

8、MEMORY表内存被存储在内存中,内存是MEMORY表和服务器在查询处理时的空闲中,创建的内部表共享

9、当不再需要MEMORY表的内容时,要释放被MEMORY表使用的内存,应该执行DELETE FROM或TRUNCATE TABLE,或者删除整个表(使用DROP TABLE)

 

BLACKHOLE


MyISAM

MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物。MyISAM主要特性有:

1、大文件(达到63位文件长度)在支持大文件的文件系统和操作系统上被支持

2、当把删除和更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块自动完成

3、每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16

4、最大的键长度是1000字节,这也可以通过编译来改变,对于键长度超过250字节的情况,一个超过1024字节的键将被用上

5、BLOB和TEXT列可以被索引

6、NULL被允许在索引的列中,这个值占每个键的0~1个字节

7、所有数字键值以高字节优先被存储以允许一个更高的索引压缩

8、每个MyISAM类型的表都有一个AUTO_INCREMENT的内部列,当INSERT和UPDATE操作的时候该列被更新,同时AUTO_INCREMENT列将被刷新。所以说,MyISAM类型表的AUTO_INCREMENT列更新比InnoDB类型的AUTO_INCREMENT更快

9、可以把数据文件和索引文件放在不同目录

10、每个字符列可以有不同的字符集

11、有VARCHAR的表可以固定或动态记录长度

12、VARCHAR和CHAR列可以多达64KB

使用MyISAM引擎创建数据库,将产生3个文件。文件的名字以表名字开始,扩展名之处文件类型:frm文件存储表定义、数据文件的扩展名为.MYD(MYData)、索引文件的扩展名时.MYI(MYIndex)


 

CSV


ARCHIVE


PERFORMANCE_SCHEMA


FEDERATED
 

 

默认引擎

SHOW VARIABLES LIKE '%engine%';

 


http://chatgpt.dhexx.cn/article/dRBLw17c.shtml

相关文章

MySQL体系结构及数据库引擎

文章目录 一、MYSQL的体系结构1、连接器2、查询缓存3、分析器(要做什么)4、优化器(怎么做)5、执行器6、数据库引擎1)mysql支持的引擎2)常用的mysql引擎比较3)索引组织表、堆组织表4)…

MySQL数据引擎

一、MySQL提供什么存储引擎 mysql> SHOW ENGINES;二、查看默认的存储引擎: mysql> SHOW VARIABLES LIKE %storage_engine%;三、各种引擎介绍 1、InnoDB存储引擎(1)大于等于5.5之后,默认采用InnoDB引擎(2&…

MySQL数据库引擎详解

作为经常使用MySQL数据库的人,不得不对MySQL的数据库引擎有一定的了解,在之前我也是只会使用MySQL,但两次的面试中都被面试官问及项目用到的数据库引擎(血与泪),因此,有必要写一篇文章&#xff…

数据库引擎

一:数据库引擎的定义 数据库引擎简单来说就是一个"数据库发动机"。当你访问数据库时,不管是手工访问,还是程序访问,都不是直接读写数据库文件,而是 通过数据库引擎去访问数据库文件。以关系型数据库为例&…

MySQL的数据库引擎介绍

1、什么是数据库引擎 数据库引擎就是操作数据库的一段程序或程序段,用于存储、处理和保护数据的核心服务。 利用数据库引擎可控制访问权限并快速处理事务,从而满足企业内大多数需要处理大量数据的应用程序的要求。数据库应用项目是通过数据库引擎与数据库…

CY7C68013 内存溢出问题

最近在开发CY68013 USB芯片的时候,开发环境(keil C51),开始的时候都编译正常,但是在我增加了一些变量和操作后,出现了很多的报错,提示内存溢出 *** ERROR L107: ADDRESS SPACE OVERFLOW 之前的…

基于CY7C68013A usb转mdio win10 64bit

基于CY7C68013A usb转mdio win10 64bit 1、芯片简介: 目前市场上主流的实现USB通信的方案主要是基于stm32(基于目前比较流行的DAPLink方案)/ft232/ch341等,CY7C68013A芯片历史较久,价格也相对偏高但USB通信设计的方法应该都是一致的。 手上…

CY7C68013与FPGA接口的Verilog

USB(通用串行总线)是英特尔、微软、IBM、康柏等公司1994年联合制定的一种通用串行总线规范,它解决了与网络通信问题,而且端口扩展性能好、容易使用。最新的USB2.0支持3种速率:低速1.5 Mbit/s,全速12 Mbit/s,高速480 Mb…

CY7C68013A之LED闪烁

#include "fx2.h" #include "fx2regs.h"sbit LED_PIN IOD ^ 3;main() {unsigned long i 0;OED | 0x08; //PD3 Output Enable;while(TRUE){if( i > 50000 ){i 0;LED_PIN ~LED_PIN;}} } 程序下载 Download是将程序下载到RAM,Lg E…

CY7C68013与FPGA接口的Verilog_HDL实现

USB(通用串行总线)是英特尔、微软、IBM、康柏等公司1994年联合制定的一种通用串行总线规范,它解决了与网络通信问题,而且端口扩展性能好、容易使用。最新的USB2.0支持3种速率:低速1.5 Mbit/s,全速12 Mbit/s,高速480 Mb…

cy7c68013linux驱动,CY7C68013A USB Board教程2:CY7C68013A USB Board驱动安装

2、我们打开软件,看看可以怎么加载驱动: 3、这里面涉及到模块的VID和PID,具体怎么看呢,详见下图: 4、接着就是修改驱动文件上的VID和PID了,我们打开安装路径下的驱动目录,如下: 5、找…

FPGA----CY7C68013使用记录

一、CY7C68013简介 CY7C68013是Cypress公司的FX2系列芯片,是一款USB2.0芯片,最大传输速度60MByte/S ,半双工通信方式。 功能引脚说明FD0~FD718~25数据线低字节FD8~FD1545~52数据线高字节 FIFOADDR0 FIFOADDR1 37 38 地址线,接收…

数字图像介绍

一、什么是数字图像 数字图像就是将图像用数字表示。 二、数字图像的起源 三、常见的成像方式 电磁波,最基本的单元叫做光子。 光子具有能量。能量E h*f。h是常数,f是频率。 又频率与波长成反比。 3.1 gama射线成像 在核聚变…

数字图像处理(1)——认识数字图像

目录 1、数字图像的构成 2、不同环境图像的存储方式 2.1、计算机中的颜色是离散的 2.2、MATLAB、OpenCV、Python中的图像都是什么 3、图像中的信息 4、数字图像处理的基本步骤 5、预备知识 5.1、邻接性、连通性、区域和边界 5.1.1 邻接性 5.1.2、连通性 5.1.3、区域…

数字图像相关(Digital Image Correlation, DIC)中的非线性优化方法IC-GN的数值解计算

目录 前言内容回顾一.IC-GN中增量 Δ P \Delta \boldsymbol P ΔP的数值解二.写在最后参考引用 前言 由于本人近期正在展开数字图像相关技术用于测量材料形变方向的研究,其中需要对别人现有算法的复现和调研,尽管其中很多算法都已经非常成熟&#xff0c…

数字图像处理:像素间的一些基本关系

图像分析的主要目的之一在于获取图像中感兴趣的目标并对目标之间的关系进行分析;目标是由图像中相关像素联合组成的;相关像素在空间的位置和属性都有密切关系,它们一半构成图像中连通组元;所以要分析像素之间的关系,不…

数字图像和数字图像处理

Digital Image Processing[数字图像和数字图像处理] 数字图像就是指代表图像的矩阵。 数字图像处理就是对图像矩阵进行各种数学运算。 在进行图像处理时需要一些数学基础,主要包括线性系统、傅立叶变换、沃尔什变换和小波变换等。 1. 景象:人眼所看到的外部世界。…

数字图像基本处理算法

数字图像基本处理算法 xizero00 常熟理工学院(CIT) 计算机科学与工程学院 下一代互联网实验室(NGIL Lab) Email:xizero00163.com 由于SIFT算法需要用到很多算法,所以这段时间研究了一下一些最基本的图像处理算法, 好了&…

图像理论知识_什么是数字图像处理?

数字图像处理,即数字,将图像转化为数字的形式,对图像做处理,我们平时所见到的图像,在计算机中都是一组数字,当通过相机捕获现实世界的景物时,相机会捕获现实世界的光源信号,并转化为…

数字图像简介及表示

数字图像处理 数字图像处理(Digital Image Processing)又称为计算机图像处理,是一种将图像信号数字化后利用计算进行处理的过程。图像 图像是三维世界在二维平面的表示,具体来说就是用光学器件对一个物体,一个人或是…