MySQL数据表类型及文件结构

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

MySQL数据表支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB,

这六种又分为两类,单独一类是BDB,称为"事务安全型"(transaction-safe),


其余都属于第二类,称为“非事务安全型"(non-transaction-safe)。下面详细介绍这些表:

事务安全型

        BDB 全称是"Brekeley DB",它是Mysql具有事务能力的表的类型,由Sleepycat Software (http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在电子银行中事务控制能力是非常重要的。

非事务安全型

       HEAP

        HEAP表是MySQL表中访问最快的表,主要是由于这类表使用保存期在内存中的散列索引,但必须注意的是,如果MySQL或者服务器崩溃,表中数据全部丢失。

ISAM

      ISAM表是MyISAM类型出现之前,MySQL表使用的默认类型,建议改用MyISAM。

MEREG

      MEREG是一种值得关注的新式表,它是由一组MyISAM表组成,之所合并主要出于性能上考虑,因为它能够提高搜索速度,提高修复效率,节省磁盘空间。

MyISAM

      MyISAM是MySQL表默认的类型,它是基于ISAM类型,但它增加了许多有用的扩展,下面是MyISAM一些优点:

        1.比ISAM表更小,所占资源更少

        2.可以在不同平台间二进制移植

表的类型在创建表时指定。在下面这个例子中我们创建了一个HEAP类型的表:

CODE

InnoBDB

       这是最近加入的新表,具有以下特性:

          事务处理机制

          崩溃后能立即恢复

          支持外键功能,级联删除

          支持并发能力

在硬盘上的存储方式:InnoBDB frm


       数据表的可移植性

通用方法:把数据表的内容导出到一个文本文件中,然后拷贝到硬盘上,导入数据库里面。就文件层次的操作来说,某些数据表是可以单独拷贝的看表

ISAM No

MyIASM Yes

BDB No

InnoBDB Yes

//======================================================================================

1.数据文件

   1)MyISAM表:有三个相关的文件,数据文件.MYD,索引文件.MYI,目标文件(定义文件).frm


   2)BDB表:包含两个文件,一个.db数据文件和一个.frm目标文件


   3)InnoDB表:有自己的目标文件.frm,但实际的数据存放在上一级目录中,与数据库属于同一级目录

2.日志文件

   

MySQL实际上支持五种不同的表类型.这五种类型分别是BDB、HEAP、ISAM、MERGE以及MyISAM。

1,ISAM数据表  

mysql3.23版本之前的MySQL支特的唯一一种表类型,目前己经过时,MyIASM处理程库逐步取代了ISAM处理程序,这种老式的表类型己经没有人在用了

数据表在硬盘上的文件存储方式:IASM Frm isd ism

2,MyIASM数据表  

这是目前中MySQL默认使用的数据表类型。其优点是

如果主机操作系统支持大尺寸文件,数据表长度就能够很大,就能客纳更多的数据.

数据表内容独立于硬件也就是说可以把数据表在机器之间随意拷贝

提高了索引方面的功能

提供了更好的索引键压缩效果

auto_incremnet能力加强

改进了对数据表的完整性检查机制

支持进行fulltext全文本搜索

数据表在硬盘上的文件存储方式:MyISAM Frm myd myi


3,Merge数据表  

这是一种把相同结构的MyIASM数据表组织为一个逻辑单元的方法

数据表在硬盘上的文件存储方式:Merge Frm mrg


4,HEAP数据表  

这是一种使用内存的数据表,而且各个数据行的长度固定,这两个特性使得这种类型数据表的检索速度非常快,作为一种临时性的数据表,HEAP在某些特定情况下很有用。

数据表在硬盘上的文件存储方式:Heap Frm

5,BDB数据表  

这种数据表支持事务处理机制,具有良好的并发性能

数据表在硬盘上的文件存储方式:BDB Frm db

6,InnoDB数据表  

这是最近加入MySQL的数据表类型,有许多新的特性

支持事务处理机制

崩溃后能够立刻恢复

支持外键功能,包括级联删除

具有并发功能

数据表在硬盘上的文件存储方式:InnoDB frm










本文转自 chengxuyonghu 51CTO博客,原文链接:http://blog.51cto.com/6226001001/1564011,如需转载请自行联系原作者
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
14天前
|
缓存 NoSQL 关系型数据库
13- Redis和Mysql如何保证数据⼀致?
该内容讨论了保证Redis和MySQL数据一致性的几种策略。首先提到的两种方法存在不一致风险:先更新MySQL再更新Redis,或先删Redis再更新MySQL。第三种方案是通过MQ异步同步以达到最终一致性,适用于一致性要求较高的场景。项目中根据不同业务需求选择不同方案,如对一致性要求不高的情况不做处理,时效性数据设置过期时间,高一致性需求则使用MQ确保同步,最严格的情况可能涉及分布式事务(如Seata的TCC模式)。
40 6
|
21天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
轻松入门MySQL:保障数据完整性,MySQL事务在进销存管理系统中的应用(12)
|
21天前
|
SQL 存储 关系型数据库
轻松入门MySQL:玩转数据表的增、删、改、查(4)
轻松入门MySQL:玩转数据表的增、删、改、查(4)
|
28天前
|
关系型数据库 MySQL
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
elasticsearch对比mysql以及使用工具同步mysql数据全量增量
21 0
|
1月前
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
Mybatis+mysql动态分页查询数据案例——测试类HouseDaoMybatisImplTest)
21 1
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
26 1
|
1月前
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
Mybatis+mysql动态分页查询数据案例——条件类(HouseCondition)
15 1
|
1月前
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
Mybatis+mysql动态分页查询数据案例——分页工具类(Page.java)
22 1
|
1月前
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
Mybatis+mysql动态分页查询数据案例——房屋信息的实现类(HouseDaoMybatisImpl)
22 2
|
1月前
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
Mybatis+mysql动态分页查询数据案例——工具类(MybatisUtil.java)
15 1