当你创建完之后, 你可以进入 Mysql 数据储存文件, 该文件夹位置定义在 Mysql 配置文件中
代码如下:
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf;
[mysqld]
datadir = /var/lib/mysql
shawn@Shawn:~$ cd /var/lib/mysql/dbName
shawn@Shawn:/var/lib/mysql/dbName$ ll
显示如下:
8768 Jun 7 22:01 employees.frm
48 Jun 7 22:01 employees.par
0 Jun 7 22:01 employees#P#pCentral.MYD
1024 Jun 7 22:01 employees#P#pCentral.MYI
0 Jun 7 22:01 employees#P#pEast.MYD
1024 Jun 7 22:01 employees#P#pEast.MYI
0 Jun 7 22:01 employees#P#pNorth.MYD
1024 Jun 7 22:01 employees#P#pNorth.MYI
0 Jun 7 22:01 employees#P#pWest.MYD
1024 Jun 7 22:01 employees#P#pWest.MYI
从这里可以看出, 它是把存储文件根据我们的定义进行了拆分
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf;
[mysqld]
datadir = /var/lib/mysql
shawn@Shawn:~$ cd /var/lib/mysql/dbName
shawn@Shawn:/var/lib/mysql/dbName$ ll
显示如下:
8768 Jun 7 22:01 employees.frm
48 Jun 7 22:01 employees.par
0 Jun 7 22:01 employees#P#pCentral.MYD
1024 Jun 7 22:01 employees#P#pCentral.MYI
0 Jun 7 22:01 employees#P#pEast.MYD
1024 Jun 7 22:01 employees#P#pEast.MYI
0 Jun 7 22:01 employees#P#pNorth.MYD
1024 Jun 7 22:01 employees#P#pNorth.MYI
0 Jun 7 22:01 employees#P#pWest.MYD
1024 Jun 7 22:01 employees#P#pWest.MYI
从这里可以看出, 它是把存储文件根据我们的定义进行了拆分
代码如下:
employees.frm = 表结构
employees.par = partition, 申明是一个分区表
.MYD = 数据文件
.MYI = 索引文件
HASH 分区
HASH 分区主要用来确保数据在预先确定数目的分区中平均分布
如果你想把不同时期加入的员工进行分别存储, 那么你可以将日期字段 hired 作为一个 key
employees.frm = 表结构
employees.par = partition, 申明是一个分区表
.MYD = 数据文件
.MYI = 索引文件
HASH 分区
HASH 分区主要用来确保数据在预先确定数目的分区中平均分布
如果你想把不同时期加入的员工进行分别存储, 那么你可以将日期字段 hired 作为一个 key
代码如下:
mysql-> CREATE TABLE employees (
-> id INT NOT NULL,
-> fname VARCHAR(30),
-> lname VARCHAR(30),
-> hired DATE NOT NULL DEFAULT '1970-01-01',
-> separated DATE NOT NULL DEFAULT '9999-12-31',
-> job_code INT NOT NULL,
-> store_id INT NOT NULL
-> ) ENGINE=Myisam DEFAULT CHARSET=utf8
-> PARTITION BY HASH (YEAR(hired)) (
-> PARTITIONS 4
-> );
#这里注意的是 PARTITIONS, 多了一个 s
这里要提一下的就是, 如上的例子都是使用的是 Myisam 存储引擎,它默认使用独立表空间, 所以你可以在上面的磁盘空间里看到不同的分区
而 InnoDB 引擎则默认使用共享表空间, 此时就算你对 InnoDB 表进行分区, 你查看下会发现, 它并没有像 Myisam 那么样进行物理上的分区, 所以你需要修改下 Mysql 配置文件:
mysql-> CREATE TABLE employees (
-> id INT NOT NULL,
-> fname VARCHAR(30),
-> lname VARCHAR(30),
-> hired DATE NOT NULL DEFAULT '1970-01-01',
-> separated DATE NOT NULL DEFAULT '9999-12-31',
-> job_code INT NOT NULL,
-> store_id INT NOT NULL
-> ) ENGINE=Myisam DEFAULT CHARSET=utf8
-> PARTITION BY HASH (YEAR(hired)) (
-> PARTITIONS 4
-> );
#这里注意的是 PARTITIONS, 多了一个 s
这里要提一下的就是, 如上的例子都是使用的是 Myisam 存储引擎,它默认使用独立表空间, 所以你可以在上面的磁盘空间里看到不同的分区
而 InnoDB 引擎则默认使用共享表空间, 此时就算你对 InnoDB 表进行分区, 你查看下会发现, 它并没有像 Myisam 那么样进行物理上的分区, 所以你需要修改下 Mysql 配置文件:
代码如下:
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf;
#添加:
innodb_file_per_table=1
#重启 mysql
shawn@Shawn:~$ sudo /etc/init.d/mysql restart
此时你再对 InooDB 进行分区, 则会有如下效果:
shawn@Shawn:~$ sudo vi /etc/mysql/my.cnf;
#添加:
innodb_file_per_table=1
#重启 mysql
shawn@Shawn:~$ sudo /etc/init.d/mysql restart
此时你再对 InooDB 进行分区, 则会有如下效果:
代码如下:
8768 Jun 7 22:54 employees.frm
48 Jun 7 22:54 employees.par
98304 Jun 7 22:54 employees#P#pCentral.ibd
98304 Jun 7 22:54 employees#P#pEast.ibd
98304 Jun 7 22:54 employees#P#pNorth.ibd
98304 Jun 7 22:54 employees#P#pWest.ibd
分区管理
删除分区
8768 Jun 7 22:54 employees.frm
48 Jun 7 22:54 employees.par
98304 Jun 7 22:54 employees#P#pCentral.ibd
98304 Jun 7 22:54 employees#P#pEast.ibd
98304 Jun 7 22:54 employees#P#pNorth.ibd
98304 Jun 7 22:54 employees#P#pWest.ibd
分区管理
删除分区
代码如下:
mysql> alter table employees drop partition pWest;
新增分区
mysql> alter table employees drop partition pWest;
新增分区
代码如下:
#range添加新分区
mysql> alter table employees add partition ( partition p4 values less than (26) );
#list添加新分区
mysql> alter table employees add partition( partition pSouth values in (21, 22, 23) );
#hash重新分区
mysql> alter table employees add partition partitions 5;
书籍
#range添加新分区
mysql> alter table employees add partition ( partition p4 values less than (26) );
#list添加新分区
mysql> alter table employees add partition( partition pSouth values in (21, 22, 23) );
#hash重新分区
mysql> alter table employees add partition partitions 5;
更多Mysql内容来自木庄网络博客
标签:Mysql
相关阅读 >>
更多相关阅读请进入《mysql》频道 >>

数据库系统概念 第6版
本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。
相关推荐
评论
管理员已关闭评论功能...
- 欢迎访问木庄网络博客
- 可复制:代码框内的文字。
- 方法:Ctrl+C。