[Mysql] create table ... data directory指定外部数据目录(单表文件表空间)


本文总阅读量

1、使用create table … data directory

1
2
3
4
5
6
7
8
9
10
root@db 18:15:  [(none)]> use test
Database changed
root@db 18:16: [test]> show tables;
+----------------+
| Tables_in_test |
+----------------+
| t1 |
| t4 |
+----------------+
2 rows in set (0.00 sec)

指定的目录对于mysql的用户来说一定要有访问权限

1
2
[root@dax-mysql-master test]# ll -d /tmp/
drwxrwxrwt. 10 root root 4096 2月 11 20:54 /tmp/

执行创建表语句

1
2
root@db 18:41:  [test]> CREATE TABLE t2 (c1 INT PRIMARY KEY) DATA DIRECTORY = '/tmp/';
Query OK, 0 rows affected (0.60 sec)

表创建完成之后,会在directory对应的目录下创建表对应的schema的目录,并在schema的目录下生成.ibd表文件

1
2
[root@dax-mysql-master test]# ll /tmp/test/t2*
-rw-r----- 1 mysql mysql 98304 2月 11 18:41 /tmp/test/t2.ibd

在mysql的数据目录下会生成.frm文件和.isl文件

1
2
3
[root@dax-mysql-master test]# ll /data/mysql/data/test/t2*
-rw-r----- 1 mysql mysql 8556 2月 11 18:41 /data/mysql/data/test/t2.frm
-rw-r----- 1 mysql mysql 16 2月 11 18:41 /data/mysql/data/test/t2.isl

2、使用create table … tablespace .. data directory

1
2
3
4
5
6
7
root@db 18:41:  [test]>  CREATE TABLE t3 (c1 INT PRIMARY KEY) TABLESPACE = innodb_file_per_table DATA DIRECTORY = '/tmp';
Query OK, 0 rows affected (0.33 sec)
[root@dax-mysql-master test]# ll /tmp/test/t3*
-rw-r----- 1 mysql mysql 98304 2月 11 22:16 /tmp/test/t3.ibd
[root@dax-mysql-master test]# ll /data/mysql/data/test/t3*
-rw-r----- 1 mysql mysql 8556 2月 11 22:16 /data/mysql/data/test/t3.frm
-rw-r----- 1 mysql mysql 16 2月 11 22:16 /data/mysql/data/test/t3.isl

执行结果与章节1相同。

目录
  1. 1. 1、使用create table … data directory
  2. 2. 2、使用create table … tablespace .. data directory

Proudly powered by Hexo and Theme by Lap
本站访客数人次
© 2020 zeven0707's blog