首页 > 数据库 > MySQL > 正文

基于MySQL的存储引擎与日志说明(全面讲解)

2024-07-24 12:50:44
字体:
来源:转载
供稿:网友

1.1 存储引擎的介绍

1.1.1 文件系统存储

文件系统:操作系统组织和存取数据的一种机制。文件系统是一种软件。

类型:ext2 3 4 ,xfs 数据。 不管使用什么文件系统,数据内容不会变化,不同的是,存储空间、大小、速度。

1.1.2 mysql数据库存储

MySQL引擎: 可以理解为,MySQL的“文件系统”,只不过功能更加强大。

MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能。

1.1.3 MySQL存储引擎种类

MySQL 提供以下存储引擎:

InnoDB、MyISAM (最常用的两种)MEMORY、ARCHIVE、FEDERATED、EXAMPLEBLACKHOLE、MERGE、NDBCLUSTER、CSV

除此之外还可以使用第三方存储引擎。

1.1.4 innodb与myisam对比

InnoDb引擎

支持ACID的事务,支持事务的四种隔离级别;

支持行级锁及外键约束:因此可以支持写并发;

不存储总行数;

一个InnoDb引擎存储在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能为多个(设置为独立表空,表大小受操作系统文件大小限制,一般为2G),受操作系统文件大小的限制;

主键索引采用聚集索引(索引的数据域存储数据文件本身),辅索引的数据域存储主键的值;因此从辅索引查找数据,需要先通过辅索引找到主键值,再访问辅索引;最好使用自增主键,防止插入数据时,为维持B+树结构,文件的大调整。

Innodb的主索引结构如下:

MyISAM引擎

不支持事务,但是每次查询都是原子的;

支持表级锁,即每次操作是对整个表加锁;

存储表的总行数;

一个MYISAM表有三个文件:索引文件、表结构文件、数据文件;

采用菲聚集索引,索引文件的数据域存储指向数据文件的指针。辅索引与主索引基本一致,但是辅索引不用保证唯一性。

MYISAM的主索引结构如下:

两种索引数据查找过程如下:

1.2 innodb存储引擎

在MySQL5.5版本之后,默认的存储引擎,提供高可靠性和高性能。

1.2.1 Innodb引擎的优点

a) 事务安全(遵从ACID)b) MVCC(Multi-Versioning Concurrency Control,多版本并发控制)c) InnoDB行级锁d) 支持外键引用完整性约束e) 出现故障后快速自动恢复(crash safe recovery)f) 用于在内存中缓存数据和索引的缓冲区池(buffer pool(data buffer page log buffer page) 、undo buffer page)g) 大型数据卷上的最大性能h) 将对表的查询与不同存储引擎混合i) Oracle样式一致非锁定读取(共享锁)j) 表数据进行整理来优化基于主键的查询(聚集索引)
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表