进阶-1.存储引擎

存储引擎

1.MySQL体系结构

在这里插入图片描述

2.存储引擎简介

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

在这里插入图片描述

-- 查询建表语句 默认引擎为InnoDB
show create table account;

返回结果

CREATE TABLE account (
id int(11) NOT NULL AUTO_INCREMENT COMMENT ‘ID’,
name varchar(10) DEFAULT NULL COMMENT ‘姓名’,
money int(11) DEFAULT NULL COMMENT ‘账户’,
PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT=‘账户表’

-- 查询当前数据库支持的存储引擎
show engines;

在这里插入图片描述

-- 创建my_myisam 并指定MyISAM存储引擎
create table my_myisam(
 id int,
 name varchar(10)
)engine = MyISAM ;
-- 创建my_memory 指定存储引擎为memory

create table my_mymemory(
 id int,
 name varchar(10)
)engine = MEMORY ;

3.存储引擎特点

3.1 InnoDB

  • 介绍

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

  • 特点

DML是遵循ACID模型,支持事务;
行级锁,是提高并发访问性能;
支持外键FOREIGN KEY 约束,保证数据的完整性和正确性;

  • 文件

xxx.ibd:xxx代表的表名,InnoDB引擎每张表都会对应一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。
参数:innodb_file_per_table 决定所有表用一个表空间,还是每张表对应一个表空间(on);

-- 查询innoDB的参数
show variables like 'innodb_file_per_table'

在这里插入图片描述
文件存储每个表单独对应一个表结构
在这里插入图片描述

  • 逻辑存储结构

在这里插入图片描述

3.2 MyISAM

  • 介绍

MyISAM是MySQL早期支持的默认存储引擎。

  • 特点

不支持事务,不支持外键
支持表锁,不支持行锁
访问速度快

  • 文件

my_myisam.MYD:存储数据 xxx.MYD
my_myisam.MYI:存储索引 xxx.MYI
my_myisam_417.sdi:存储表结构信息 xx.sdi

3.3 Memory

  • 介绍

memory引擎的表数据时存储在内存中的,由于受硬件问题、或断电问题的影响,只能将这些表作为临时表或缓存使用。

  • 特点

内存存放
hash索引(默认)

  • 文件

xxx.sdi:存储表结构信息

在这里插入图片描述

4. 存储引擎选择

在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据实际情况选择多种存储引擎进行组合
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值