mysql存储引擎

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

  Mysql架构 --存储引擎

 Mysql存储引擎

1)存储引擎引入了一个新的概念,插件式存储引擎体系结构,MYSQL AB架构改造时候,让存储引擎层和sqllayer各自更为独立,耦合更小,甚至可以做到在线加载存储引擎,就是完全可以将一个新的存储引擎加载到一个正在运行的MySQL 中,而不影响MySQL 的正常运行。

2插件式存储引擎的

架构,为存储引擎的加载和移出更为灵活方便,也使自行开发存储引擎更为方便简单。

(3)MySQL的插件式存储引擎主要包括MyISAMInnodbNDB ClusterMariaFalconMemory其中最著名而且使用最为广泛的MyISAMInnodb两种存储引擎

 Mysql存储引擎介绍

1mysql5.1之前默认存储引擎。

2MyISAM存储引擎的表在数据库中,每一个表都被存放为三个以表名命名的物理文件。

3.结构定义信息的.frm文件,另外还有.MYD.MYI 文件,分别存放了表的数据(.MYD)和索引数据(.MYI)。

4. 每个表都有且仅有这样三个文件做为MyISAM存储类型的表的存储,就是说不管这个表有多少个索引,都是存放在同一个.MYI 文件中。

 MyISAM支持以下三种类型的索引:

1: B-Tree 索引

B-Tree 索引,就是所有的索引节点都按照balance tree 的数据结构来存储,所有的索引数据节点都在叶节点。

2: R-Tree 索引

要设计用于为存储空间和多维数据的字段做索引,所以目前的MySQL 版本来说,也仅支持geometry 类型的字段作索引。

3: Full-text 索引

Full-text 索引就是全文索引,他的存储结构也是b-tree。主要是为了解决在我们需要用like 查询的低效问题。

4: 索引有一个较大的限制,那就是参与一个索引的所有字段的长度之和不能超过1000 字节。

四:磁盘硬件故障

1每一个MyISAM的表都是存放在一个相同后缀名的.MYD 文件中,但实际存放格式可能并不是完全一样的

2因为MyISAM的数据存放格式是分为静态(FIXED固定长度、动态(DYNAMIC可变长度以及压缩(COMPRESSED)这三种格式。可以在创建表的时候通过ROW_FORMAT 来指定

 

  先算一个表中一行有多少个字节。

根据数据库中的表每天增加多少行记录,就能够算出每天要增加多少硬盘空间,这样就可根据数据量估算规划多大的空间。

例在数据库test中创建一张test1

wKiom1lg6bnxsfU3AAAKC9Cb2_s416.png-wh_50

wKioL1lg6crAEM8UAAAjh6xtgdA069.png-wh_50

执行mysql>desc  test1.tb1查看tb1的表结构

wKioL1lg6eCwRUTBAAAofriwtho027.png-wh_50

10个字节+20个字节+2个字节+20字节+8字节+8字节+100个字节=168字节

Tb1表的一个行有118个字节

如果每天增加10000条记录,大约需要10000x168/1024/1024=1.6MB

这样就可以根据每天增加的记录数,合理规划好磁盘空间了

1如果我们的数据库正在运行过程中发现某个MyISAM表出现问题了,则可以在线通过check table 命令来尝试校验他,并可以通过repair table 命令来尝试修复

2: 我们也可以通过myisamchk工具来对数据库中某个(或某些)表进行检测或者修复。

五:lnnodb 存储引擎介绍

1、支持事务

Innodb在功能方面最重要的一点就是对事务的支持

2、锁定机制的改进

Innodb改变了MyISAM的锁机制,实现了行锁。

3、实现外键

Innodb实现了外键引用这一数据库的重要特性。

4、Innodb存储引擎也和MyISAM不太一样,.frm文件来存放表结构定义相关的元数据,但是表数据和索引数据是存放在一起的。

六:Lnnodb物理结构分为俩大部分

首先,Innodb的表空间分为两种形式。一种是共享表空间,也就是所有表和索引数据被存放在同一个表空间(一个或多个数据文件)中,通过innodb_data_file_path来指定,增加数据文件需要停机重启。另外一种是独享表空间,也就是每个表的数据和索引被存放在一个单独的.ibd文件中。

 2: 日志文件

Innodb完全可以通过redo 日志将数据库Crash 时刻已经完成但还没有来得及将数据写入磁盘的事务恢复,也能够将所有部分完成并已经写入磁盘的未完成事务回滚并将数据还原。

3: MyISAMInnoDB的区别

MyISAM不支持事务,而InnoDB支持。InnoDBAUTOCOMMIT默认是打开的

wKiom1lg6fWDPf8KAAARqsBplx4349.png-wh_50










     本文转自柴鑫旺 51CTO博客,原文链接:http://blog.51cto.com/chaixinwang/1945553,如需转载请自行联系原作者


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
4天前
|
存储 缓存 关系型数据库
MySQL 存储引擎
MySQL 存储引擎
35 6
|
4天前
|
存储 缓存 关系型数据库
Mysql的两种存储引擎以及区别
Mysql的两种存储引擎以及区别
24 1
|
4天前
|
存储 关系型数据库 MySQL
Mysql第七天,存储引擎
Mysql第七天,存储引擎
68 0
Mysql第七天,存储引擎
|
4天前
|
存储 关系型数据库 MySQL
【MySQL 数据库】5、存储引擎
【MySQL 数据库】5、存储引擎
124 0
|
4天前
|
存储 关系型数据库 MySQL
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
最全MySQL面试60题(含答案):存储引擎+数据库锁+索引+SQL优化等
239 0
|
4天前
|
存储 SQL 关系型数据库
Mysql系列-4.Mysql存储引擎-InnoDB(下)
Mysql系列-4.Mysql存储引擎-InnoDB
50 0
|
4天前
|
存储 缓存 关系型数据库
MySQL - 存储引擎MyISAM和Innodb
MySQL - 存储引擎MyISAM和Innodb
|
4天前
|
存储 缓存 关系型数据库
MySQL两种存储引擎及区别
MySQL两种存储引擎及区别
28 4
MySQL两种存储引擎及区别
|
4天前
|
存储 SQL 关系型数据库
Mysqlslap性能测试MySQL三种存储引擎
Mysqlslap性能测试MySQL三种存储引擎
|
4天前
|
存储 缓存 关系型数据库
mysql存储引擎
mysql存储引擎