MySQL存储引擎

1. 什么是存储引擎

数据库存储引擎是数据库底层软件组件,数据库管理系统使用数据引擎进行创建、查询、更新和删除数据操作,不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能

MySQL 5.7 支持的存储引擎有 InnoDB、MyISAM、Memory、Merge、Archive、Federated、CSV、BLACKHOLE,可以使用SHOW ENGINES语句查看系统所支持的引擎类型,InnoDB 事务型数据库的首选引擎,支持事务安全表(ACID),支持行锁定和外键。MyISAM 是基于 ISAM 的存储引擎,并对其进行扩展,是在 Web、数据仓储和其他应用环境下最常使用的存储引擎之一,MyISAM 拥有较高的插入、查询速度,但不支持事务,MEMORY 存储引擎将表中的数据存储到内存中,为查询和引用其他数据提供快速访问,InnoDB 是系统的默认引擎,支持可靠的事务处理

2. MyISAM 存储引擎

每个 MyISAM 表在磁盘上存储成 3 个文件,其中文件名和表名都相同,扩展名分别为

(1)frm(存储表定义)

(2)MYD(MYData,存储数据)

(3)MYI(MYIndex,存储索引)

MyISAM 表还支持 3 种不同的存储格式

(1)静态表(固定长度)

(2)动态表

(3)压缩表

3. InnoDB 存储引擎

InnoDB 是一个健壮的事务型存储引擎,这种存储引擎已经被很多互联网公司使用,为用户操作非常大的数据存储提供了一个强大的解决方案。MySQL默认的存储引擎为 InnoDB,InnoDB 存储引擎还引入了行级锁定和外键约束,在以下场景中使用 InnoDB 存储引擎是最理想的选择

(1)更新密集的表:InnoDB 存储引擎特别适合处理多重并发的更新请求。

(2)事务:InnoDB 存储引擎是支持事务的标准 MySQL 存储引擎。

(3)自动灾难恢复:与其它存储引擎不同,InnoDB 表能够自动从灾难中恢复。

(4)外键约束:MySQL 支持外键的存储引擎只有 InnoDB。

(5)支持自动增加列 AUTO_INCREMENT 属性

Innodb的数据文件:

(1)ibd:数据表的数据文件

(2)frm:数据表的元数据

(3)opt:存储的是mysql的一些配置信息,如编码、排序的信息

4. 修改默认的存储引擎

(1)创建表,并查看默认用的存储引擎

(2)通过 alter table 修改

(3)通过配置文件修改

(4)通过 create table 创建表时指定存储引擎

(5)临时修改默认的存储引擎

5. 插入一组数据,来比较两个存储引擎的存储效率

(1)设置sql语句结束符

(2)创建两个存储过程

(3)利用存储过程向两个表添加数据

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值