mysql存文件_MySQL中文件存储形式 (-)

2022-10-22 10:39:11

MySQL中文件存储形式(InnoDB/MyIsam)

与innodb文件格式相关的参数为

innodb_data_file_path、innodb_data_file_path、innodb_log_group_home_dir、innodb_open_files

1、独占表空间

下面进入MySQL数据存放目录,查看使用innodb时MySQL存储文件格式

[root@www ~]# cd /var/lib/mysql/

[root@www mysql]# ls –lrt

总用量 21352

drwx------. 2 mysql mysql

4096 11月

26 2017 test

drwx------. 2 mysql mysql

4096 11月

26 2017 mysql

-rw-rw----. 1 mysql mysql

765307 11月

26 2017 master-bin.000002

-rw-rw----. 1 mysql mysql

19742 11月

26 2017 master-bin.000001

-rw-rw----. 1 mysql mysql 5242880

11月

26 2017 ib_logfile1

drwx------. 2 mysql mysql

4096 11月

26 2017 testslave

-rw-rw----. 1 mysql mysql

764 11月

27 2017 master-bin.000003

-rw-rw----. 1 mysql mysql

599 11月

28 2017 master-bin.000004

drwx------. 2 mysql mysql

4096 11月

28 2017 hellodb

-rw-rw----. 1 mysql mysql

10270 11月

28 2017 master-bin.000005

-rw-rw----. 1 mysql mysql

125 4月20 21:34 master-bin.000006

-rw-rw----. 1 mysql mysql

596 4月25 00:23 master-bin.000007

-rw-rw----. 1 mysql mysql

367 4月28 20:08 master-bin.000008

srwxrwxrwx. 1 mysql mysql

0 6月8 17:34 mysql.sock

-rw-rw----. 1 mysql mysql

180 6月8 17:34 master-bin.index

drwx------. 2 mysql mysql

4096 6月8 18:36 mydb

-rw-rw----. 1 mysql mysql

1031 6月8 19:20 master-bin.000009

-rw-rw----. 1 mysql mysql 5242880

6月8 19:20 ib_logfile0

-rw-rw----. 1 mysql mysql 10485760 6月8 19:20 ibdata1

1)、日志组文件:

可以发现,./目录下数据存在日志组文件:

ib_logfile0和ib_logfile1,默认均为5M。

2)、表结构文件:*.frm

在MYSQL中建立任何一张数据表,在其数据存放目录对应的数据库目录下都有对应表的.frm文件,

.frm文件是用来保存每个数据表的元数据(meta)信息,包括表结构的定义等,

在MySQL中,“.frm”文件跟数据库存储引擎无关,任何存储引擎的数据表结构文件都存储为.frm文件,

命名方式为“tablename.frm”,如scores.frm,.frm文件可以用来在数据库崩溃时恢复表结构。

[root@www mysql]# cd hellodb/

[root@www hellodb]# ls -lrt

总用量 824

-rw-rw----. 1 mysql mysql 8658

11月

28 2017 scores.frm

-rw-rw----. 1 mysql mysql

61 11月

28 2017 db.opt

-rw-rw----. 1 mysql mysql 8602

11月

28 2017 courses.frm

-rw-rw----. 1 mysql mysql 8630

11月

28 2017 coc.frm

-rw-rw----. 1 mysql mysql 8636

11月

28 2017 classes.frm

-rw-rw----. 1 mysql mysql 8622

11月

28 2017 toc.frm

-rw-rw----. 1 mysql mysql 8656

11月

28 2017 teachers.frm

-rw-rw----. 1 mysql mysql 98304

11月

28 2017 toc.ibd

-rw-rw----. 1 mysql mysql 98304

11月

28 2017 teachers.ibd

-rw-rw----. 1 mysql mysql 98304

11月

28 2017 scores.ibd

-rw-rw----. 1 mysql mysql 98304

11月

28 2017 courses.ibd

-rw-rw----. 1 mysql mysql 98304

11月

28 2017 classes.ibd

-rw-rw----. 1 mysql mysql 8736

11月

28 2017 students.frm

-rw-rw----. 1 mysql mysql

603 11月

28 2017 test.frm

-rw-rw----. 1 mysql mysql 131072 11月

28 2017 students.ibd

-rw-rw----. 1 mysql mysql 98304

6月8 19:20 coc.ibd

3)、独占表空间文件:*.ibd

在innodb_file_per_table配置为ON时设置为独占表空间,此时,系统将为每一个表单独存储为“.ibd”文件,

(如scores.ibd)在此文件中,存储与该表相关的数据、索引、表的内部数据字典信息。

4)、字符集和排序规则文件:db.opt

[root@www hellodb]# cat db.opt

default-character-set=utf8

default-collation=utf8_general_ci

文件中记录了该库的默认字符集编码和字符集排序规则。如果你创建数据库指定默认字符集和排序规则,

后续创建的表如果没有指定字符集和排序规则,那么该新建的表将采用db.opt文件中指定的属性。

如果删除这个db.opt,MySQL在建表时将参照全局的字符设置,即default-character-set

这个影响是在建表的时候才会有体现,你不在那个库新建表,是没什么差异的。

字符集配置:

vim /etc/my.cnf

[client]

default-character-set = charset

(charset是mysql支持的字符集)

5)、binlog二进制日志文件:记录主数据库服务器的DDL和DML操作。

在主从复制时,二进制日志文件将通过Binlog Dump线程传递给从服务器的I/O线程,

I/O线程获取事件数据后传递给从服务器的relay

log,然后在从服务器重做一遍实行复制。

[root@www hellodb]# cd ..

[root@www mysql]# cat master-bin.000009

ºY[V󿾄@mydbcreate

table t3 like t1󗙛@mydbBEGIN󗙛^b@mydbinsert

into t3 value(1,'jones')󗙛iZ[D@mydbBEGINZ[^@mydbinsert

into t3 value(2,'jarry')Z[j>[[@mydbdrop table if exists

t4\[V

@mydbdrop table if exists t4 \[W= @mydbcreate table cid(id

int){f[@hellodbBEGIN{f[h

  • 作者:Jacob贾超
  • 原文链接:https://blog.csdn.net/weixin_32859127/article/details/113139066
    更新时间:2022-10-22 10:39:11