MySQL存储引擎

本文详细介绍了MySQL的存储引擎,包括默认的InnoDB和MyISAM。InnoDB支持事务、行级锁和外键,适合高并发场景;而MyISAM性能较高,但不支持事务。MySQL可以通过配置文件改变默认存储引擎,并调整数据存储位置。Memory引擎则将数据存储在内存中,适合临时数据。理解不同存储引擎的特性有助于优化数据库性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1,当我们往数据库表里插入数据时,所有的数据都是存储在硬盘上的。
2,在mysql里是以何种方式对数据进行存储的都是由存储引擎所决定的,不同的存储引擎存储文件的方式是不一样的。
3,命令行打开mysql

mysql -uroot -p****** -h127.0.0.1
-u用户名 -p密码 -hip地址

4,查看搜索引擎show engines;
在这里插入图片描述
5,存储引擎介绍
在这里插入图片描述
引擎:InnoDB
支持:支持/InnoDB是默认的存储引擎
注释:支持事务,行级锁,外键
事务:支持
分布式事务:支持
保存点:支持
6,在MySQL5.5.8之前的存储引擎为myisam,在这之后的默认存储引擎为innodb。
可以在mysql的配置文件里修改默认存储引擎,修改行为

default-storage-engine=myisam      配置文件是my.cnf

7,查看MySQL版本
在这里插入图片描述
8,使用navicat也可以对引擎进行选择,不同的引擎对数据的操作各有优势。
设计完表也可以对存储引擎进行修改。
在这里插入图片描述

9,MYISAM存储引擎分析
性能比较高,读取数据的速度比较快。支持全文外键,支持表级锁,不支持事务,不支持外键。
创建一个库a,会生成一个db.opt,该文件存储的是a数据库的属性信息。
然后创建一张表,该表是由三个文件进行存储的
例如创建表student,那么会有三个文件,分别是
student.frm 存储的是表结构。
student.MYD存储的是数据。
student.MYI存储的是索引。
在这里插入图片描述

10,数据库的数据存储位置为在这里插入图片描述
查看数据库数据存储位置:

show global variables like "%datadir%";

11,InnoDB
(支持外键,事务,支持行级锁,在大并发量插入的情况下性能比较高)
innodb使用的是共享表空间。所有innodb表的数据都是存放在一个文件。所有的数据都是放在ibdata1里,所以就是共享表空间。和oracle说的表空间不是一个东西。
在这里插入图片描述
所有的innodb的表数据都存放于ibdata1里不喜欢,可以开启独立表空间,一张表对应一个空间。此时我们查看是否开启独立表空间,
在这里插入图片描述
开启独立表空间,此时看在这个表里的两个文件,是有一个ibd文件的。
开启还是关闭独立表空间需要修改配置文件。
在这里插入图片描述
当我们将表空间设置为独立表空间,不会自动的将meta_sentinel.ibd进行生成,此时我们需要手动的键入命令

alert table 表名 engine=innodb;

此时共享表空间的数据会写进独立表空间。
注意: 即使开启了独立表空间,ibdata1也是不能删除的,里边还存放了其他数据,表的元数据还在里边。
总用一个时刻ibdata1文件过大,这时需要将数据写入其它文件。

innodb_data_file_path=ibdata1:200M;ibdata2:10M:autoextend

设置ibdata1最大为200M,当超过这个大小将存储在ibdata2中,起始大小为10M,当大小不够用,会自动扩展。ibdata2这个文件名可以自定义。还可以修改ibdata2的路径。
当我们删除一张表的时候,ibdata1的大小是不会变的,数据所占空间是不会释放的,如何解决该问题?

12,Memory存储引擎,所有的数据都是存放在内存里的,并不是放在硬盘里,所有的读取或者写入是非常迅速的。
缺点:当计算机重启的时候所有的数据都会丢失。
13,存储引擎的意义
MySQL中的数据用各种不同的技术存储在文件(或者内存)中。每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。例如,如果你在研究大量的临时数据,你也许需要使用内存MySQL存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。

这些不同的技术以及配套的相关功能在 MySQL中被称作存储引擎(也称作表类型)。 MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值