在线精品99_中国九九盗摄偷拍偷看_91免费版在线观看_91.app_91高清视频在线_99热最新网站

Mysql表分区的操作方法

137次阅读
没有评论

共计 4744 个字符,预计需要花费 12 分钟才能阅读完成。

这篇文章主要讲解了“Mysql 表分区的操作方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“Mysql 表分区的操作方法”吧!

Mysql 表分区操作及相关操作  

将 ID 设为自增长 ID 
alter table pw_trade_record_temp change ID ID int(4) auto_increment; 

分区字段必需为主键,修改主键  

ALTER TABLE `pw_trade_record` 
DROP PRIMARY KEY, 
ADD PRIMARY KEY (`ID`, `TRADE_TIME`); 

直接在建表时创建表分区  

创建 range 分区  

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date, 

salary int 

partition by range(salary) 

partition p1 values less than (1000), 

partition p2 values less than (2000), 

partition p3 values less than maxvalue 

); 

以员工工资为依据做范围分区。 

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date not null, 

salary int 

partition by range(year(birthdate)) 

partition p1 values less than (1980), 

partition p2 values less than (1990), 

partition p3 values less than maxvalue 

); 

以 year(birthdate) 表达式(计算员工的出生日期)作为范围分区依据。这里最值得注意的是表达式必须有返回值下载地址    。 

创建 list 分区  

create table emp 

(empno  varchar(20) not null , 

empname varchar(20), 

deptno  int, 

birthdate date not null, 

salary int 

partition by list(deptno) 

partition p1 values in  (10), 

partition p2 values in  (20), 

partition p3 values  in  (30) 

); 

以部门作为分区依据,每个部门做一分区。 

创建 hash 分区  

HASH 分区主要用来确保数据在预先确定数目的分区中平均分布。在 RANGE 和 LIST 分区中,必须明确指定一个给定的列值或列值集合应该保存在哪 个分区中;而在 HASH 分区中,MySQL 自动完成这些工作,你所要做的只是基于将要被哈希的列值指定一个列值或表达式,以及指定被分区的表将要被分割成的分区数量下载地址  。 

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date not null, 

salary int 

partition by hash(year(birthdate)) 

partitions 4; 

创建 key 分区  

按照 KEY 进行分区类似于按照 HASH 分区,除了 HASH 分区使用的用户定义的表达式,而 KEY 分区的哈希函数是由 MySQL 服务器提供,服务器使用其自己内部的哈希函数,这些函数是基于与 PASSWORD() 一样的运算法则。“CREATE TABLE …PARTITION BY KEY”的语法规则类似于创建一个通过 HASH 分区的表的规则。它们唯一的区别在于使用的关键字是 KEY 而不是 HASH,并且 KEY 分区只采用一个或多个 列名的一个列表下载地址  。 

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date not null, 

salary int 

partition by key(birthdate) 

partitions 4; 

创建复合分区  

range – hash(范围哈希) 复合分区  

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date not null, 

salary int 

partition by range(salary) 

subpartition by hash(year(birthdate)) 

subpartitions 3 

partition p1 values less than (2000), 

partition p2 values less than maxvalue 

); 

range- key 复合分区  

create table emp 

(empno varchar(20) not null , 

empname varchar(20), 

deptno int, 

birthdate date not null, 

salary int 

partition by range(salary) 

subpartition by key(birthdate) 

subpartitions 3 

partition p1 values less than (2000), 

partition p2 values less than maxvalue 

); 

list – hash 复合分区  

CREATE TABLE emp ( 

empno varchar(20) NOT NULL, 

empname varchar(20) , 

deptno int, 

birthdate date NOT NULL, 

salary int 

PARTITION BY list (deptno) 

subpartition by hash(year(birthdate)) 

subpartitions 3 

PARTITION p1 VALUES in  (10), 

PARTITION p2 VALUES in  (20) 

list – key 复合分区  

CREATE TABLE empk ( 

empno varchar(20) NOT NULL, 

empname varchar(20) , 

deptno int, 

birthdate date NOT NULL, 

salary int 

PARTITION BY list (deptno) 

subpartition by key(birthdate) 

subpartitions 3 

PARTITION p1 VALUES in  (10), 

PARTITION p2 VALUES in  (20) 

修改现有未分区的表,给表做分区  

ALTER TABLE `pw_trade_record` 
PARTITION BY RANGE(UNIX_TIMESTAMP(TRADE_TIME)) 

PARTITION p20160501 VALUES LESS THAN (UNIX_TIMESTAMP( 2016-05-01)), 
PARTITION pmax VALUES LESS THAN MAXVALUE); 

增加分区  
alter table pw_trade_record add partition (partition p20160518 values in (UNIX_TIMESTAMP( 2016-05-18))); 

删除分区 (一次性可删除多个分区) 
alter table pw_trade_record drop partition p20140101,p20160501,…; 

删除表的所有分区  
Alter table emp removepartitioning;– 不会丢失数据  

合并表分区  
示例:将表分区 p20140101,p20160501 合并到 p20160501 分区中  
alter table pw_trade_record reorganize partition p20140101,p20160501 into 
(partition p20160501 values less than (UNIX_TIMESTAMP( 2016-05-18)), 
PARTITION pmax VALUES LESS THAN MAXVALUE 
); 

分解表分区  
示例:将表分区 pmax 分解成 p20160518 和 pmax 两个分区  
alter table pw_trade_record reorganize partition pmax into 
(partition p20160518 values less than (UNIX_TIMESTAMP( 2016-05-18)), 
PARTITION pmax VALUES LESS THAN MAXVALUE 
); 

查看分区表状态  
select table_schema,table_name,partition_name,partition_ordinal_position,partition_method,partition_expression,partition_description,table_rows,avg_row_length,data_length from INFORMATION_SCHEMA.PARTITIONS where table_name= pw_trade_record  

重新定义 hash 分区表: 

Alter table emp partition by hash(salary)partitions 7;  —- 不会丢失数据  

重新定义 range 分区表: 

Alter table emp partitionbyrange(salary) 

partition p1 values less than (2000), 

partition p2 values less than (4000) 

); —- 不会丢失数据  

重建分区: 

这和先删除保存在分区中的所有记录,然后重新插入它们,具有同样的效果。它可用于整理分区碎片。 

ALTER TABLE emp rebuild partitionp1,p2; 

优化分区: 

如果从分区中删除了大量的行,或者对一个带有可变长度的行(也就是说,有 VARCHAR,BLOB,或 TEXT 类型的列)作了许多修改,可以使用“ALTER TABLE … OPTIMIZE PARTITION”来收回没有使用的空间,并整理分区数据文件的碎片。 

ALTER TABLE emp optimize partition p1,p2; 

分析分区: 

读取并保存分区的键分布。 

ALTER TABLE emp analyze partition p1,p2; 

修补分区: 

修补被破坏的分区。 

ALTER TABLE emp repairpartition p1,p2; 

检查分区: 

可以使用几乎与对非分区表使用 CHECK TABLE 相同的方式检查分区。 

ALTER TABLE emp CHECK partition p1,p2; 

这个命令可以告诉你表 emp 的分区 p1,p2 中的数据或索引是否已经被破坏。如果发生了这种情况,使用“ALTER TABLE … REPAIR PARTITION”来修补该分区。 

感谢各位的阅读,以上就是“Mysql 表分区的操作方法”的内容了,经过本文的学习后,相信大家对 Mysql 表分区的操作方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-03发表,共计4744字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)
主站蜘蛛池模板: 在线观看欧洲成人免费视频 | 91在线一区二区 | 国产精品99久久久久久夜夜嗨 | 99re久久| 国产亚洲精品一区久久 | 四虎影视免费观看免费观看 | 在线视频一区二区三区在线播放 | yellow免费在线观看 | 欧美日本在线播放 | 欧美色视频日本 | 国产av无码国产av毛片 | 99久久免费精品国产免费高清 | 九九热在线视频观看这里只有精品 | 日韩国产 | 国产真实露脸精彩对白91 | 日本大胆欧美人术艺术 | 成人毛片高清视频观看 | 国产美女主播一级成人毛片 | 四虎精品影院 | 亚洲 欧洲 另类 综合 自拍 | 色猫咪免费人成网站在线观看 | 国产成人精品白浆久久69 | 色综七七久久成人影 | 国产高清在线精品一区 | 国产成人偷拍 | 亚洲成人在线电影 | 国产suv精品一区 | 成人免费一区二区三区视频软件 | 美女国产毛片a区内射 | 完整的sm调教视频 | 国产视频一区二区三区四区 | 亚洲人成一区二区不卡 | 国产二级一片内射视频插放 | 国产麻豆剧传媒精品国产免费 | 亚洲成亚洲成网 | 午夜在线影院 | 国内成人精品视频 | 国产偷国产偷亚洲清高 | 日本黄色一级网站 | 日产精品一区二区三区免费 | 欧美激情视频一区二区 |