第七课 进阶篇_存储引擎

  • Post author:
  • Post category:其他




第七课 进阶篇_存储引擎



一. MySQL体系结构

在这里插入图片描述



二. 存储引擎简介

是存储数据,建立索引,更新/查询数据等技术的实现方式.存储引擎是基于表的,而不是基于库的,所以存储引擎也可以被称为表类型.



1.在创建表时指定存储引擎

CREATE TABLE 表名(

​ 字段1 字段1类型[COMMENT 字段1注释],

​ …

​ 字段n 字段n类型[COMMENT 字段n注释]

)ENGINE=引擎名 [COMMENT 表注释];



2.查看当前数据库支持的存储引擎

SHOW ENGINES;



三. 存储引擎特点



1.InnoDB

一种兼顾高可靠性和高性能的通用存储引擎,在MySQL5.5后,InnoDB是默认的MySQL存储引擎.



①特点:

DML操作遵循ACID模型,支持事务

行级锁,提高并发访问新能

支持外键FOREIGN KEY约束,保证数据的完整性和正确性



②文件:

xxx.ibd:innoDB引擎的每张表都会对应一个表空间文件,存储该表的表结构(frm,sdi),数据和索引

参数:innodb_file_per_table

默认打开(ON):每张表都对应一个表空间文件,关闭(OFF)多长表公用一个表空间文件



③查看变量:
show variables like 'innodb_file_per_table';


④提取表空间文件内的sdi

命令行输入:ibd2sdi 表空间文件名

C:\ProgramData\MySQL\MySQL Server 8.0\Data\test>ibd2sdi account.ibd


⑤逻辑存储结构

在这里插入图片描述



2.MySAM

是MySQL早期的默认存储引擎



①特点

不支持事务,不支持外键

支持表锁,不支持行锁

访问速度快

访问



②文件

xxx.sdi:表结构信息

xxx.MYD:表数据

xxx.MYI:表索引



③查看sdi文件

记事本打开全选复制→json.cn网站格式化



3.Memory

表数据存储时存在内存中,由于收到硬件或断电影响,只能将这些表作为临时表或缓存使用.



①特点

内存存放

hash索引(默认)



②文件

xxx.sdi:存储表结构



4.数据引擎区别

特点 InnoDB MyISAM Memory
存储限制 64TB
事务安全 支持
锁机制 行锁 表锁 表锁
B+tree索引 支持 支持 支持
Hash索引 支持
全文索引 支持(5.6版本之后) 支持
空间使用 N/A
内存使用 中等
批量插入速度
支持外键 支持



四.存储引擎应用场景选择

InnoDB:应对事务的完整性有较高要求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新,删除操作.

MySAM:以读操作和插入为主,只有很少的更新和删除操作,并且对事务的完整性,并发性要求不高.

MEMORY:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存,对表的大小有限制,太大的表无法缓存在内存中,且无法保障数据安全.



版权声明:本文为weixin_46192491原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。