一 数据文件

在 MySQL中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件。不同的 MySQL存储引擎有各自不同的数据文件,存放位置也有区别。多数存储引擎的数据文件都存放在和 MyISAM数据文件位置相同的目录下,但是每个数据文件的扩展名却各不一样。如 MyISAM用“.MYD”作为扩展名, Innodb用“ .ibd”, Archive用“ .arc”, CSV用“ .csv”,等等。

InnoDB,是MySQL的数据库引擎之一,为MySQL AB发行binary的标准之一。InnoDB由Innobase Oy公司所开发,2006年五月时由甲骨文公司并购。与传统的ISAMMyISAM相比,InnoDB的最大特色就是支持了ACID兼容的事务(Transaction)功能,类似于PostgreSQL。目前InnoDB采用双轨制授权,一是GPL授权,另一是专有软件授权。

MyISAMMySQL的默认数据库引擎(5.5版之前),由早期的ISAM所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transaction)。不过,在这几年的发展下,MySQL也导入了InnoDB(另一种数据库引擎),以强化参照完整性并发违规处理机制,后来就逐渐取代MyISAM。

Archive引擎作用: 为大量很少 引用的历史、归档、或安全审计信息的存储和检索提供了完美的解决方案,区别于InnoDB、MyISAM提供压缩功能,没有索引。

MyISAM与Innodb的数据文件:

1、“ .frm”文件

与表相关的元数据( meta)信息都存放在“ .frm”文件中,包括表结构的定义信息等。不论是什么存储引擎,每一个表都会有一个以表名命名的“ .frm”文件。所有的“ .frm”文件都存放在所属数据库的文件夹下面。

2、“ .MYD”文件“ .MYD”文件是 MyISAM存储引擎专用,存放 MyISAM表的数据。每一个 MyISAM表都会有一个“.MYD”文件与之对应,同样存放于所属数据库的文件夹下,和“ .frm”文件在一起 。

3、“ .MYI”文件

“ .MYI”文件也是专属于 MyISAM存储引擎的,主要存放 MyISAM表的索引相关信息。对于 MyISAM存储来说,可以被cache的内容主要就是来源于“ .MYI”文件中。每一个 MyISAM表对应一个“ .MYI”文件,存放于位置和“.frm”以及“ .MYD”一样。

4、“ .ibd”文件和 ibdata文件

这两种文件都是存放 Innodb数据的文件,之所以有两种文件来存放 Innodb的数据(包括索引),是因为 Innodb的数据存储方式能够通过配置来决定是使用共享表空间存放存储数据,还是独享表空间存放存储数据。独享表空间存储方式使用“ .ibd”文件来存放数据,且每个表一个“ .ibd”文件,文件存放在和 MyISAM数据相同的位置。如果选用共享存储表空间来存放数据,则会使用 ibdata文件来存放,所有表共同使用一个(或者多个,可自行配置)ibdata文件。 ibdata文件可以通过 innodb_data_home_dir和 innodb_data_file_path两个 参数共 同配置 组成,innodb_data_home_dir 配置 数据存 放的总 目录, 而innodb_data_file_path 配 置 每 一 个 文 件 的 名 称。 当 然 , 也 可 以 不 配 置innodb_data_home_dir而直接在 innodb_data_file_path参数配置的时候使用绝对路径来完成配置。 innodb_data_file_path中可以一次配置多个 ibdata文件。文件可以是指定大小,也可以是自动扩展的,但是 Innodb限制了仅仅只有最后一个 ibdata文件能够配置成自动扩展类型。当我们需要添加新的 ibdata文件的时候,只能添加在 innodb_data_file_path配置的最后,而且必须重启 MySQL才能完成 ibdata的添加工作。不过如果我们使用独享表空间存储方式的话,就不会有这样的问题,但是如果要使用裸设备的话,每个表一个裸设备,可能造成裸设备数量非常大,而且不太容易控制大小,实现比较困难,而共享表空间却不会有这个问题,容易控制裸设备数量。

而不管Innodb 使用的是共享还是独享表空间的方式来存储数据,与事务相关的undo 信息以及其他的一些元数据信息,都是存放在“innodb_data_home_dir”和“innodb_data_file_path”这两个参数所设定的数据文件中的

Innodb 还有自己存放redo 信息和相关事务信息,日志文件在“innodb_log_group_home_dir”参数所设定的位置。

(转)mysql数据文件解析的更多相关文章

  1. 简单学习一下ibd数据文件解析

    来源:原创投稿 作者:花家舍 简介:数据库技术爱好者. GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 简单学习一下数据文件解析 这是尝试使用Golang语言简单解析My ...

  2. 转】[MySQL优化]为MySQL数据文件ibdata1瘦身

    原博文出自于: http://blog.fens.me/category/%E6%95%B0%E6%8D%AE%E5%BA%93/page/2/ 感谢! [MySQL优化]为MySQL数据文件ibda ...

  3. Json--Android中数据文件解析(Json解析--从服务器端获取数据并且解析,显示在客户端上面)

    前面学习过了使用SAX解析XML数据(点击进入:SAX解析XML数据),今天学习Json解析: 首先说一下Json数据的最基本的特点,Json数据是一系列的键值对的集合,和XML数据来比,Json数据 ...

  4. CentOS6.5修改mysql数据文件路径

    1.停止mysql服务      service mysql stop 2.移动数据文件位置(保留原文件权限)      cp -a /var/lib/mysql /mysqldata 3.修改/et ...

  5. mysql数据文件迁移到新的硬盘分区的方法

    该系统增加了一个硬盘.要创建新的分区/data文件夹,mysql对于数据文件夹/var/lib/mysql 1.  停止mysql维修 [root@localhost~]# service mysql ...

  6. 修改MySQL数据文件的位置

    1:查看MySQL服务名称 2:管理员启动控制台 3:修改配置文件my.ini中数据文件的位置,[注]修改完成之后要把响应的数据文件从旧目录拷贝到新目录当中. 4:重新启动服务 5:登录数据库查看数据 ...

  7. MySQL数据文件介绍及存放位置

    怎样查看MySql数据库物理文件存放位置? 使用命令行查找: show global variables like '%datadir%'; 我查找的位置:C:\ProgramData\MySQL\M ...

  8. Python&Selenium 关键字驱动测试框架之数据文件解析

    摘要:在关键字驱动测试框架中,除了PO模式以及一些常规Action的封装外,一个很重要的内容就是读写EXCEL,在团队中如何让不会写代码的人也可以进行自动化测试? 我们可以将自动化测试用例按一定的规格 ...

  9. 查找mysql数据文件存放路径

    show variables like 'datadir%'; show variables当前的会话,是系统参数 是静态 show global variables全局 show status是系统 ...

随机推荐

  1. Sencha Touch 扩展集合

    https://market.sencha.com/extensions http://try.sencha.com/touch/2.1.0/ http://www.mitchellsimoens.c ...

  2. spring boot 单元测试,如何使用profile

    一.问题概述 spring boot项目.单元测试的时候,我发现,总是会使用application.properties的内容,而该文件里,一般是我的开发时候的配置. 比如上图中,dev是开发配置,p ...

  3. CF 672D Robin Hood(二分答案)

    D. Robin Hood time limit per test 1 second memory limit per test 256 megabytes input standard input ...

  4. 【CF860E】Arkady and a Nobody-men 长链剖分

    [CF860E]Arkady and a Nobody-men 题意:给你一棵n个点的有根树.如果b是a的祖先,定义$r(a,b)$为b的子树中深度小于等于a的深度的点的个数(包括a).定义$z(a) ...

  5. [Log]ASP.NET之HttpModule 事件执行顺序

    ASP.Net下的HttpModule是基于事件的处理模型,这使得我们在选择事件监听和处理的时候有更多选择.下面是对HttpModule有关事件被触发的监测: 有关代码如下 using System; ...

  6. python nose测试框架全面介绍三

    三.nose的测试工具集 nose.tools模块提供了一系列的小工具,包括测试执行时间.异常输出及unittest框架中所有的assert功能. 为了使写用例更加容易,nose.tools提供了部分 ...

  7. jenkins遇到含中文路径的SVN地址时认证通不过

    安装插件:http://mirror.xmission.com/jenkins/plugins/subversion/2.5/subversion.hpi 可以解决svn中文目录问题 百度云:http ...

  8. you do not have permission to pull from the repository解决方法

    使用git进行项目的版本管理,换了台电脑,配置了账号和邮箱后,pull一个私有项目的时候,发现一个问题: 原因分析: 这是由于没有设置Gitee的SSH公钥.在未设置SSH公钥的情况下,可以使用git ...

  9. HDU 5636 Shortest Path(Floyed,枚举)

    Shortest Path Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java/Others) Tot ...

  10. 三维重建项目:Photo Tourism: Exploring Photo Collections in 3D

    项目地址:http://phototour.cs.washington.edu/ Photo Tourism是华盛顿大学的SFM重建的过程 Paper:Photo Tourism: Exploring ...