MySQL部分引擎的数据文件名称作用是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
MySQL各类引擎的数据文件名称测试
InnoDB:
创建表test01:
mysql> create table test01 (id int, name varchar(8)) engine=innodb;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test01 values(1,‘hh’);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 112K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
说明:
test01.frm:存放与表相关的元数据信息;
test01.ibd:存放表的数据;(此为私有表空间文件,如果是公有表空间,则文件名为ibdata)
MyISAM:
创建表test02:
mysql> create table test02 (id int, name varchar(8)) engine=myisam;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test02 values(1,‘hh’);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 132K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:48 test02.frm
-rw-r----- 1 mysql mysql 20 Mar 31 10:49 test02.MYD
-rw-r----- 1 mysql mysql 1.0K Mar 31 10:49 test02.MYI
说明:
test02.frm:存放与表相关的元数据信息;
test02.MYD:myisam存储引擎专用,用于存储myisam表的数据
test02.MYI:myisam存储引擎专用,用于存储myisam表的索引相关信息
MEMORY:
创建表test03:
mysql> create table test03 (id int, name varchar(8)) engine=memory;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test03 values(1,‘hh’);
Query OK, 1 row affected (0.01 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 144K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:48 test02.frm
-rw-r----- 1 mysql mysql 20 Mar 31 10:49 test02.MYD
-rw-r----- 1 mysql mysql 1.0K Mar 31 10:49 test02.MYI
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:54 test03.frm
说明:
test03.frm:存放与表相关的元数据信息;
ARCHIVE:
创建表test04:
mysql> create table test04 (id int, name varchar(8)) engine=ARCHIVE;
Query OK, 0 rows affected (0.01 sec)
mysql> insert into test04 values(1,‘hh’);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 168K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:48 test02.frm
-rw-r----- 1 mysql mysql 20 Mar 31 10:49 test02.MYD
-rw-r----- 1 mysql mysql 1.0K Mar 31 10:49 test02.MYI
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:54 test03.frm
-rw-r----- 1 mysql mysql 8.5K Mar 31 10:57 test04.ARZ
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:57 test04.frm
说明:
test04.frm:存放与表相关的元数据信息;
test04.ARZ:存放表的数据;
CSV:
创建表test05:
mysql> create table test05 (id int, name varchar(8)) engine=csv;
ERROR 1178 (42000): The storage engine for the table doesn’t support nullable columns
mysql> create table test05 (id int not null, name varchar(8) not null) engine=csv;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test05 values(1,‘hh’);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 188K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:48 test02.frm
-rw-r----- 1 mysql mysql 20 Mar 31 10:49 test02.MYD
-rw-r----- 1 mysql mysql 1.0K Mar 31 10:49 test02.MYI
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:54 test03.frm
-rw-r----- 1 mysql mysql 8.5K Mar 31 10:57 test04.ARZ
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:57 test04.frm
-rw-r----- 1 mysql mysql 35 Mar 31 11:02 test05.CSM
-rw-r----- 1 mysql mysql 7 Mar 31 11:02 test05.CSV
-rw-r----- 1 mysql mysql 8.4K Mar 31 11:02 test05.frm
说明:
test05.frm:存放表结构信息;
test05.CSV:存放表的数据,用CSV格式保存;
test05.CSM:存储表的元数据,如表状态和数据量;
BLACKHOLE:
创建表test06:
mysql> create table test06 (id int not null, name varchar(8) not null) engine=blackhole;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test06 values(1,‘hh’);
Query OK, 1 row affected (0.00 sec)
mysql> commit;
Query OK, 0 rows affected (0.00 sec)
mysql> select * from test06;
Empty set (0.00 sec)
查看数据文件目录:
[root@mysqldb test]# ll -h
total 200K
-rw-r----- 1 mysql mysql 61 Mar 27 10:44 db.opt
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:43 test01.frm
-rw-r----- 1 mysql mysql 96K Mar 31 10:43 test01.ibd
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:48 test02.frm
-rw-r----- 1 mysql mysql 20 Mar 31 10:49 test02.MYD
-rw-r----- 1 mysql mysql 1.0K Mar 31 10:49 test02.MYI
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:54 test03.frm
-rw-r----- 1 mysql mysql 8.5K Mar 31 10:57 test04.ARZ
-rw-r----- 1 mysql mysql 8.4K Mar 31 10:57 test04.frm
-rw-r----- 1 mysql mysql 35 Mar 31 11:02 test05.CSM
-rw-r----- 1 mysql mysql 7 Mar 31 11:02 test05.CSV
-rw-r----- 1 mysql mysql 8.4K Mar 31 11:02 test05.frm
-rw-r----- 1 mysql mysql 8.4K Mar 31 11:10 test06.frm
说明:
test06.frm:存放与表相关的元数据信息;
看完上述内容,你们掌握MySQL部分引擎的数据文件名称作用是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注亿速云行业资讯频道,感谢各位的阅读!