MySQL-存储引擎

简介:存储引擎是存储数据,建立索引,更新/查询数据等技术的实现方式。存储引擎是基于表的,而不是基于库的, (同一个数据库的不同表可以选择不同的存储引擎)  所以存储引擎也可被称为表类型。

我们输入 SHOW CREATE TABLE 表名; 来查看建表语句。我们可以看到我们建表时候未输入存储引擎,系统有默认的存储引擎 InnoDB(MySQL5.5以后默认InnoDB)。

1.创建表的时候,指定存储引擎:

CREATE TABLE 表名(

字段1 字段类型(长度)[COMMENT 字段1注释],

字段2 字段类型(长度)[COMMENT 字段2注释],

字段3 字段类型(长度)[COMMENT 字段3注释]

)ENGINE=INNODB[COMMENT 表注释];

2.查询数据库支持的存储引擎:

SHOW ENGINNES;

InnoDB:

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

特点:

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

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

支持外键约束,保证性能完整性和正确性

文件:

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

逻辑存储空间:

TableSpace(表空间)包含很多Segment(段)包含很多Extent(区)包含很多Page(页)包含很多Row(行)包含一个(最后一次操作的id 和一个指针 还有一个一个的字段),page 页是磁盘操作的最小单元。一个区的大小是固定的1M,一个页的大小是固定的16K。

MyISAM

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

特点:

不支持事务,不支持外键

支持表锁,不支持行锁

访问速度快

文件:

MyISA会有三个文件:

xxx.sdi:存储表结构信息

xxx,MYD:存储数据

xxx.MYI:存储索引

 

Memory

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

特点:

内存存放

hash索引(默认)

文件:

xxx.sdi:存储表结构信息

存储引擎的选择:

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值