MySQL之数据库引擎及修改引擎的方法

一、MySQL引擎介绍
数据库存储引擎是数据库重要的存储机制,数据库管理系统主要是使用数据引擎进行创建、查询、更新和删除数据。
不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。在面对不同的数据库情况时,也支持使用多种数据引擎。
在MySQL中,其核心机制就是存储引擎。

二、MySQL引擎

1、存储引擎查看
可在mysql中通过指令 show engines 进行查看;

show engines;

MySQL之数据库引擎及修改引擎的方法_第1张图片
通过输出结果:可看到 DEFAULT ,默认引擎为MyISAM。
看到MySQL给用户提供了这么多存储引擎,包括处理事务安全表的引擎和出来了非事物安全表的引擎。

也可以通过下列命令 查看数据库默认使用哪个引擎:

show VARIABLES LIKE 'storage_engine';

MySQL之数据库引擎及修改引擎的方法_第2张图片
注:在MySQL中,不需要在整个服务器中使用同一种存储引擎,针对具体的要求,可以对每一个表使用不同的存储引擎。Support列的值表示某种引擎是否能使用:YES表示可以使用、NO表示不能使用、DEFAULT表示该引擎为当前默认的存储引擎 。

2、常见的几种引擎
2.1、InnoDB存储引擎
InnoDB在事务型数据库中应用最多,其主要支持事务安全表(ACID),行锁定和外键。
介绍下InnoDB的主要特性:
1、InnoDB给MySQL提供了具有提交、回滚和崩溃恢复能力的事物安全(ACID兼容)存储功能。
2、InnoDB是为处理巨大数据量的最大性能设计。
3、InnoDB存储引擎完全与MySQL服务器整合,高度适配。
4、InnoDB支持外键完整性约束。
5、InnoDB被用在众多需要高性能的大型数据库站点上

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

2.2、MyISAM存储引擎
MyISAM基于ISAM存储引擎,并对其进行扩展。它是在Web、数据仓储和其他应用环境下最常使用的存储引擎之一。MyISAM拥有较高的插入、查询速度,但不支持事物
MyISAM主要特性有:
1、大文件(达到63位文件长度)在支持大文件的文件系统和操作系统上被支持
2、当把删除和更新及插入操作混合使用的时候,动态尺寸的行产生更少碎片。这要通过合并相邻被删除的块,以及若下一个块被删除,就扩展到下一块自动完成
3、每个MyISAM表最大索引数是64,这可以通过重新编译来改变。每个索引最大的列数是16

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

2.3、MEMORY存储引擎
MEMORY存储引擎将表中的数据存储到内存中,为查询和引用其他表数据提供快速访问。
MEMORY主要特性有:
1、MEMORY表的每个表可以有多达32个索引,每个索引16列,以及500字节的最大键长度
2、MEMORY存储引擎执行HASH和BTREE缩影
3、可以在一个MEMORY表中有非唯一键值

3、存储引擎的选择
不同的存储引擎都有各自的特点,以适应不同的需求,如下表所示:
MySQL之数据库引擎及修改引擎的方法_第3张图片
总结如下:
1、要提供提交、回滚、崩溃恢复能力的事物安全(ACID兼容)能力,并要求实现并发控制,InnoDB。
2、数据表主要用来插入和查询记录,则MyISAM引擎能提供较高的处理效率
3、如果只是临时存放数据,数据量不大,并且不需要较高的数据安全性,可以选择将数据保存在内存中的Memory引擎,MySQL中使用该引擎作为临时表,存放查询的中间结果
4、如果INSERT和SELECT操作较多,可以选择Archive。Archive非常适合存储归档数据,如记录日志信息可以使用Archive

三、修改engine引擎的方法
例如:将mysql的引擎修改为INNODB,【INNODB支持外键,事务等】
方法:找到自己mysql目录下的my.ini 文件,进行如下编辑:
在[mysqld] 下,进行如下添加:

default-storage-engine=INNODB

MySQL之数据库引擎及修改引擎的方法_第4张图片
wq保存退出,
重启mysql服务即可

systemctl restart mysqld

你可能感兴趣的:(MySQL,mysql,mysql引擎)