MySQL进阶之存储引擎

1 简介

存储引擎是存储数据、建立索引、更新/查询数据等技术的实现方式。存储引擎是基于表的,所以也被称为表类型。MySQL5.5版本后默认存储引擎为InnoDB

2 相关命令

# 查看数据库支持的存储引擎(Engine:存储引擎 Support:是否支持 Comment:注释 Transactions:是否支持事务 XA:是否支持XA协议 Savepoints:是否支持保存点)
show engines;
# 查看建表时使用的存储引擎
show create table tablename;
# 创建表时,指定存储引擎
create table tablename(
...
)engine=MyISAM;

3 InnoDB存储引擎

3.1 特点
  • DML操作遵循ACID模型,支持事务
  • 行级锁,提高并发访问性能
  • 支持外键FOREIGN KEY约束,保证数据的完整性和正确性
  • 应用于对事务的完整性有比较高的要求,在并发条件下要求数据一致性的情景
3.2 文件

xxx.idb:xxx为表名,每张表都会对应一个这样的表空白文件,存储该表的表结构(frm,sdi)、数据和索引。
参数:innodb_file_per_table

show variables like 'innodb_file_per_table'
3.3 逻辑存储结构
  • 一个TableSpace(表空间)包含多个Segment(段)
  • 一个Segment包含多个Extent(区)
  • 一个Extent包含多个Page(页)
  • 一个Page包含多个Row(行)

4 MyISAM存储引擎

4.1 特点
  • 不支持事务,不支持外键
  • 支持表锁,不支持行锁
  • 访问速度快
  • 应用于以读操作和插入操作为主,只有很少的更新和删除操作,且对事务完整性、并发性要求不高的情景
4.2 文件

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

5 Memory存储引擎

5.1特点
  • 存储在内存中,容易受到硬件和断点问题的影响
  • 支持hash索引(默认)
  • 对表的大小有限制,太大的表无法缓存在内存中,且无法保障数据安全
  • 应用于临时表的存储及缓存
5.2 文件

xxx.sdi:存储表结构信息

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值