(十九)MySQL存储引擎

MySQL体系结构

存储引擎简介

存储引擎就是存储数据,建立索引更新或查询数据等技术的实现方式,存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型MySQL 5.5 之后默认InnoDB。

-- 指定存储引擎
create table tb_name (
    列名 数据类型 comment 声明
    , ...
) engines = 存储引擎名;


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

存储引擎特点

InnoDB

  1. 是一种兼顾高可靠性和高性能的通用存储引擎。
  2. 特点
    1. DML操作遵循acid模型支持事务
    2. 行级锁,提高并发访问性能。
    3. 支持外键foreign key约束,保证数据的完整性和正确性。 
  3. 文件:tb_name.ibd:InnoDB引擎的每张表都会对应一个这样的表空间文件,存储该表的表结构(frm、sdi)、数据和索引。【参数 innodb_file_per_table:所有表共用一个表空间文件还是每张表建立一个表空间文件】
    -- 查看参数innodb_file_per_table的值
    show variables like 'innodb_file_per_table';
    如果想查看表的结构,可以打开cmd执行以下语句:

  4. 逻辑存储结构

MyISAM

  1. 是MySQL早起默认的存储引擎
  2. 特点
    1. 不支持事务,不支持外键
    2. 支持行锁,不支持表锁
    3. 访问速度快
  3. 文件
    1. tb_name.sdi:存储表结构
    2. tb_name.MYD:存储数据
    3. tb_name.MYI:存储索引

Memory

  1. Memory引擎的表述句是存储在内存中的,由于受到硬件问题、断电问题的影响,只能将这些表作为临时表或缓存使用
  2. 特点
    1. 内存存放
    2. 支持hash索引(默认)
  3. 文件:tb_name.sdi:存储表结构信息

 

存储引擎选择

  1. InnoDB:是MySQL的默认存储引擎,支持事务、外键。如果应用对事性有比较高的要求,在民法条件下要求数据的一致性,数据操作除了插入和查询之外,还包含了很多的更新、删除操作,可以选择InnoDB。(绝大情况)
  2. MyISAM:如果应用是以读操作和插入操作为主,只有很少的更新和删除操作。并且对事物的完整性,并发性要求不是很高,那么选择这个存储引擎是非常合适。
  3. Memory:将所有数据保存在内存中,访问速度快,通常用于临时表以及缓存。缺陷就是对表的大小有限制,太大的表无法缓存在内存中,而且无法保证数据的安全性。

不总结=白学


THE END


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值