MySQL数据表类型及文件结构
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
MySQL数据表类型及文件结构相关推荐
- linux下查看mysql数据库的字段类型_系统运维|[小白技巧]如何在Linux上检查MySQL数据表的存储引擎类型...
提问: 我想要知道我的MySQL数据库是MyISAM还是Innodb类型.我该如何检查MySQL数据库表的类型? MySQl主要使用两种存储引擎:MyISAM 和 Innodb.MyISAM是非事务的 ...
- 如何正确选择MySQL数据列类型
MySQL数据列类型选择是在我们设计表的时候经常会遇到的问题,下面就教您如何正确选择MySQL数据列类型,供您参考学习. 选择正确的数据列类型能大大提高数据库的性能和使数据库具有高扩展性.在选择MyS ...
- MySQL的表类型和存储引擎
MySQL的表类型由存储引擎(Storage Engines)决定,类型包括MyISAM.innoDB.BDB等. 常用的存储引擎 MySQL 数据表主要支持六种类型 ,分别是:BDB.HEAP.IS ...
- mysql表损坏自动修复工具_对MySQL数据表(已损坏)的修复
以下的文章主要讲述的是如何正确修复已损坏的MySQL数据表,主要是了两种方法,一种是check table与 repair table ,一种是通过myisamchk, isamchk ,于断电或非正 ...
- mysql数据表操作_MySQL数据表基本操作实例详解
本文实例讲述了MySQL数据表基本操作.分享给大家供大家参考,具体如下: 数据表的基本操作 1.主键约束要求主键列的数据唯一,并且不允许为空.主键能够唯一地识别表中的一条记录,可以结合外键来定义不同数 ...
- oracle数据表转换为mysql数据表
oracle数据表转换为mysql数据表,或者反过来,我们可以借助navica的工具 1.打开navicat的工具->数据传输 2.选择源数据库以及目标数据库 目标可以选择数据库也可以选择文件, ...
- mysql数据表添加列_如何将列添加到MySQL表
mysql数据表添加列 The command add column is used to add an additional column to any given MySQL table. 命令a ...
- MySQL数据库——MySQL数据表添加字段(三种方式)
MySQL 数据表是由行和列构成的,通常把表的"列"称为字段(Field),把表的"行"称为记录(Record).随着业务的变化,可能需要在已有的表中添加新的字 ...
- MySQL 数据表主键设计,选择自增 id 还是 UUID 还是雪花 id?
在 MySQL 数据表的设计中,官方推荐我们不要使用 UUID 或者其他不连续不重复的 id,而是推荐使用连续自增的主键 id(auto_increment). 随着现在许多项目都涉及到了分布式或者微 ...
- MySQL 数据表查询
查询数据指从数据库中获取所需要的数据.查询数据是数据库操作中最常用,也是最重要的操作.用户可以根据自己对数据的需求,使用不同的查询方式.通过不同的查询方式,可以获得不同的数据.MySQL中是使用SEL ...
最新文章
- python-range用法
- RabbitMQ 可靠消息传输实战--云平台技术栈12
- 《云计算:概念、技术与架构》一2.3 案例研究3:Innovartus
- java客户端发送token_基于token的会话保持机制
- 【风控策略】大数据风控策略逻辑
- matlab GUI之自定义菜单小结
- 小游戏策划案例精选_小游戏策划方案
- js函数内部定义函数的理解
- 思科模拟器Cisco Packet Tracer的下载与安装
- APP开通支付宝支付 转账功能
- 红薯 选择 MySQL 用的服务器硬件配置
- 如何利用springboot快速搭建一个消息推送系统
- linux暂停进程运行的按键组合是,Linux基础命令(五):进程——ps、top、jobs、bg、fg、kill、killall、shutdown...
- 用Django加PIL做一个证件照模板生成器网页
- 查看世界编程语言排行榜
- iOS Mac Catalyst
- 乘法逆元 java_乘法逆元的求法(5种)
- (转)程序员成功之路 ——The road ahead for programmer(演讲稿)
- PostgreSQL+postgis入门及简单应用(dijkstra实现最短路径)
- Pandas50个高级高频操作
热门文章
- 大脑构造图与功能解析_EXCEL函数中Indirect才是构造函数之王,其他函数只能靠边站...
- springboot mybatis如何打印出查询语句_Java 面试,如何坐等 offer?
- 在计算机上的英语作文,我和电脑的英语作文
- php 5.6 mysql con,最新版的程序,支持PHP5.6和MYSQL5.6的环境吗
- XPath 基本语法
- mysql 查询 一天的时间_MySQL怎么查询每天打卡的最早时间和最晚时间?
- 快速排序的python实现
- MySQL半同步复制 - 优点、缺点、配置
- SpringBoot-15-之整合MyBatis-注解篇+分页
- C#邮件发送问题(一)