mysql的数据文件

一,系统参数datadir

在MySQL 中每一个数据库都会在定义好(或者默认)的数据目录下存在一个以数据库名字命名的文件夹,用来存放该数据库中各种表数据文件 datadir指定的目录是数据库目录的上级目录,一般的创建数据库的时候会创建两个数据库mysql和test,如果再创建一个数据库的话就会多出一个对应的数据库文件夹

mysql> show variables like "%datadir%";

+---------------+-----------------------+

| Variable_name | Value                 |

+---------------+-----------------------+

| datadir       | /usr/local/mysql/var/ |

+---------------+-----------------------

mysql> system ls  /usr/local/mysql/var/

ibdata1      ib_logfile1  test     test4.pid test4.wolf.org.pid

ib_logfile0  mysql  test4.log  test4.wolf.org.err

mysql> create database chen;

Query OK, 1 row affected (0.03 sec)

mysql> system ls  /usr/local/mysql/var/

chen ib_logfile0  mysql  test4.logtest4.wolf.org.err

ibdata1  ib_logfile1  test   test4.pidtest4.wolf.org.pid

二,MyISAM 引擎的数据文件

我们来在chen数据库里面创建一个表试试看,会产什么变化!!

mysql> use chen;

Database changed

mysql> create table tt(id int ,name varchar(20)) engine=myisam;

Query OK, 0 rows affected (0.15 sec)

结果生成如下文件

[root@test4 ~]# cd /usr/local/mysql/var/chen/

[root@test4 chen]# ll  -h

total 20K

-rw-rw----. 1 mysql mysql   61 Sep  4 20:04 db.opt

-rw-rw----. 1 mysql mysql 8.4K Sep  4 20:22 tt.frm

-rw-rw----. 1 mysql mysql    0 Sep  4 20:22 tt.MYD

-rw-rw----. 1 mysql mysql 1.0K Sep  4 20:22 tt.MYI

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

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

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

三,innodb 引擎的数据文件

innodb_file_per_table参数的作用是决定innodb引擎的数据是不是每个表一个文件,也就是说是不是每个表独享一个表文件。off表示的是共享,on表示的是独享

mysql> show variables like "%per_table%";

+-----------------------+-------+

| Variable_name         | Value |

+-----------------------+-------+

| innodb_file_per_table | OFF   |

+-----------------------+-------+

1 row in set (0.01 sec)

“.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参数配置的时候使用绝对路径来完成配置。

mysql> show variables like "%innodb_data%";

+-----------------------+------------------------+

| Variable_name         | Value                  |

+-----------------------+------------------------+

| innodb_data_file_path | ibdata1:10M:autoextend |

| innodb_data_home_dir  | /usr/local/mysql/var   |

+-----------------------+------------------------+

innodb_data_file_path中可以一次配置多个ibdata文件。文件可以是指定大小,也可以是自动扩展的,但是Innodb 限制了仅仅只有最后一个ibdata 文件能够配置成自动扩展类型。当我们需要添加新的ibdata 文件的时候,只能添加在innodb_data_file_path配置的最后,而且必须重启MySQL 才能完成ibdata 的添加工作。

我们把参数innodb_file_per_table设置成on试试有什么变化,那么这个时候就是一个表一个数据文件了。。。

mysql> show variables like "%per_table%";

+-----------------------+-------+

| Variable_name         | Value |

+-----------------------+-------+

| innodb_file_per_table | ON    |

+-----------------------+-------+

mysql> use chen

Database changed

mysql> create table cc(id int ,name varchar(20)) engine=innodb;

Query OK, 0 rows affected (0.14 sec)

mysql> insert into cc values(1,'rdcgggiiii');

Query OK, 1 row affected (0.08 sec)

mysql> insert into cc  select * from  cc;

Query OK, 1 row affected (0.62 sec)

Records: 1  Duplicates: 0  Warnings: 0

生成的.idb数据文件

[root@test4 chen]# pwd

/usr/local/mysql/var/chen

[root@test4 chen]# ls

cc.frm  cc.ibd  db.opt  ss.frm  tt.frm  tt.MYD  tt.MYI

mysql的体系结构

from: http://wolfword.blog.51cto.com/4892126/1288777
http://wolfword.blog.51cto.com/4892126/1288782

mysql dba系统学习(12)mysql的数据文件 mysql dba系统学习(13)mysql的体系结构相关推荐

  1. his系统与用友软件对接实现数据同步到erp系统

    相关his系统与用友软件对接实现数据同步到erp系统中 his系统和用友财务软件,他们现在想实现把业务系统中是数据传递到用友软件中生成用友的财务凭证,他们开始采用把业务系统中数据批量导出excel表, ...

  2. Linux学习笔记(二)——文件与磁盘系统

    Linux学习笔记(二)--文件与磁盘系统 文件操作 ls [选项][目录名]-l :列出长数据串,包含文件的属性与权限数据等-a :列出全部的文件,连同隐藏文件(开头为.的文件)一起列出来(常用)- ...

  3. laravel mysql rand_laravel如何从mysql数据库中随机抽取n条数据(高性能) - Laravel学习网...

    laravel如何高性能地从mysql数据库中随机获取n条数据,有时候我们常常会需要从数据库随机获取数据,比如:给工作人员随机分配10个订单,随机从数据库中随机抽查100个用户:这样我们就需要随机从数 ...

  4. solr mysql增量导入_10.Solr4.10.3数据导入(DIH全量增量同步Mysql数据)

    1.创建MySQL数据 create databasesolr;usesolr;DROP TABLE IF EXISTSstudent;CREATE TABLEstudent ( idchar(10) ...

  5. MySQL报错——Windows无法启动MySQL服务(位于本地计算机上)。错误⒉系统找不到指定的文件。、windows无法启动MySQL服务出现1053错误解决方法

    今天想使用MySQL,想在命令行窗口启动MySQL, 于是执行了如下命令: net start mysql 结果报错了,如下图所示: 然后又去服务里面手动启动 结果不出所料的还是报错了,错误提示如下图 ...

  6. mysql多行合并成一行_数据文件合并与拆分

    [摘要] 本文介绍将多个文本文件和 Excel 文件合并成一个文件,或者将一个文件拆分成几个小文件时,如何处理会遇到的几种情况,并用 esProc SPL 举例实现. 在数据处理业务中,经常要把文件结 ...

  7. 鸟哥的Linux私房菜-第10/11/12/13章(vim程序编辑器、学习bash、正则表达式与文件格式化处理、学习Shell Scripts)...

    第10章 vim程序编辑器 可以将vim看做vi的进阶版本,vim可以用颜色或底线等方式来显示出一些特殊的信息. 为何要学习vim?因为: a. 所有的 Unix Like 系统都会内建 vi 文书编 ...

  8. 云机房服务器系统安装系统,美猴云西部数据中心机房服务器系统模板说明

    1.Windows2003_集成php+mysql [中文32位] 预装环境包含:php5.2.Mysql5.1.ftp.IIS..NET.伪静态组件,Zend组件.服务器安全狗天互专用版等.具体信息 ...

  9. 计算机xp怎么做备份,怎样备份xp系统电脑上的所有数据?在xp系统中备份所有文件的方法...

    虽然微软已经停止对xp系统的维护,但是很多用户对它的热情度依然不减.而winxp系统自带的备份工具可以帮助我们更方便地对电脑数据进行备份和恢复.下面,小编就给大家介绍利用xp自带备份工具备份所有文件的 ...

  10. oracle 恢复学习 案例1 一个数据文件丢失 完全恢复数据库

    案例1 数据文件user01丢失 恢复背景: 数据库打开处于归档模式,首先备份数据文件user01.dbf,然后删除user01.dbf 关闭数据库 启动数据库 SQL> startup ORA ...

最新文章

  1. virtualBox 创建新虚拟机
  2. 第013课_代码重定位
  3. ArcGIS 10.2晕渲图+旋转图制作
  4. 可以用在任何人身上:百战百胜人生10大成功秘诀
  5. Linux 命令(93)—— updatedb 命令
  6. 13 MySQL--存储过程
  7. CentOS6.5安装python3.7
  8. LeetCode刷题(简单)笔记C++
  9. LibreOJ #6014. 「网络流 24 题」最长 k 可重区间集
  10. 通过BigInteger真正实现无限大的十进制转N(任意整数)进制
  11. 二叉树(Java实现)
  12. Jira与敏捷项目管理
  13. 使用AdoptOpenJDK替代Oracle JDK
  14. STM32控制0.96寸OLED(4针/4Pin)汉字以及数字,英文显示
  15. (*(volatile unsigned int *))详解
  16. NestJs简明教程
  17. Quick #UE4 Tip (第3周 2020.4.10)
  18. ERP 系统的核心是什么?有什么作用?
  19. matlab抓取网页信息,如何利用Matlab抓取网页数据
  20. android按钮添加音效,Android------Button 添加声音效果(两种方式)

热门文章

  1. 如何手动卸载 SQL Server 2005 实例(官方)
  2. 大规模知识图谱的构建
  3. 清单革命:为什么不仅是工具革命?
  4. 不要将时间浪费到编写完美代码上
  5. mysql视图的简介_mysql视图简介
  6. chm 能插入公式吗_批量提取表格名称、插入空列,教你三下五除二秒速完成!...
  7. 转载:谢谢原作者: 块设备驱动实战基础篇二 (继续完善170行过滤驱动代码至200行)
  8. 每日一博 - 延时任务的多种实现方式解读
  9. Elasticsearch-02CentOS7安装elasticsearch-head插件
  10. mysql 散列存储_什么是数据库散列存储? - 蚂蚁吞大象的个人空间 - 51Testing软件测试网 51Testing软件测试网-软件测试人的精神家园...