新建叁个表:

analzye表

 

上面针对专门的学问查询,决定用时间来做range分区(还可能有list,hash等品种),贰个月八个区.

check表

维护命令:

  1. show create table employees2;  //查看分区表的概念  
  2. show table status like ’employees2’\G;    //查看表时候是分区表 如“Create_options: partitioned”  
  3. select * from information_schema.KEY_COLUMN_USAGE where table_name=’employees2′;   //查看索引  
  4. SELECT * FROM information_schema.partitions WHERE table_name=’employees2′   //查看分区表  
  5. explain partitions select * from employees2 where separated < ‘一九八九-01-01’ or separated > ‘二〇一六-01-01’;   //查看分区是不是被select使用    

澳门凯旋门注册网址 1
倘若你意识是empty,表达您的mysql版本远远不足,分区至少要5.1

mysql> create unique index idx_employees1_job_code on
employees1(job_code);
ERROR 1503 (HY000): A UNIQUE INDEX must include all columns in the
table’s partitioning function

mysql> ALTER TABLE `skate`.`employees1` ADD PRIMARY KEY (`id`)
;
ERROR 1503 (HY000): A PRIMARY KEY must include all columns in the
table’s partitioning function

  1. CREATE TABLE `xxxxxxxx` (     
  2. `crttm` int(11) NOT NULL,     
  3. `srvid`澳门凯旋门游戏网址 , int(11) NOT NULL,     
  4. `evtid` int(11) NOT NULL,     
  5. `aid` int(11) NOT NULL,     
  6. `rid` int(11) NOT NULL,     
  7. `itmid` int(11) NOT NULL,     
  8. `澳门凯旋门注册网址 ,itmnum` int(11) NOT NULL,     
  9. `gdtype` int(11) NOT NULL,     
  10. `gdnum` int(11) NOT NULL,     
  11. `islmt` int(11) NOT NULL,  
  12. KEY `crttm` (`crttm`),  
  13.   KEY `itemid` (`itmid`),  
  14. 原来有三个后台对那一个表进行总括澳门凯旋门注册网址。  KEY `srvid` (`原来有三个后台对那一个表进行总括澳门凯旋门注册网址。srvid`),  
  15.   KEY `gdtype` (`gdtype`)  
  16. 原来有三个后台对那一个表进行总括澳门凯旋门注册网址。) ENGINE=myisam DEFAULT CHARSET=utf8  
  17. PARTITION BY RANGE (crttm)   
  18. (  
  19. 原来有三个后台对那一个表进行总括澳门凯旋门注册网址。PARTITION p201303 VALUES LESS THAN (unix_timestamp(‘2013-04-01’)),  
  20. PARTITION p201304 VALUES LESS THAN (unix_timestamp(‘2013-05-01’)),  
  21. 原来有三个后台对那一个表进行总括澳门凯旋门注册网址。PARTITION p201305 VALUES LESS THAN (unix_timestamp(‘2013-06-01’)),  
  22. PARTITION p201306 VALUES LESS THAN (unix_timestamp(‘2013-07-01’)),  
  23. PARTITION p201307 VALUES LESS THAN (unix_timestamp(‘2013-08-01’)),  
  24. PARTITION p201308 VALUES LESS THAN (unix_timestamp(‘2013-09-01’)),  
  25. PARTITION p201309 VALUES LESS THAN (unix_timestamp(‘2013-10-01’)),  
  26. PARTITION p201310 VALUES LESS THAN (unix_timestamp(‘2013-11-01’)),  
  27. PARTITION p201311 VALUES LESS THAN (unix_timestamp(‘2013-12-01’)),  
  28. PARTITION p201312 VALUES LESS THAN (unix_原来有三个后台对那一个表进行总括澳门凯旋门注册网址。timestamp(‘2014-01-01’)),  
  29. PARTITION p201401 VALUES LESS THAN (unix_timestamp(‘2014-02-01’))  
  30. );  

 
rebuild重建分区

  1. alter  table xxxxxx analyze partition pm1/all;  

 

  1. alter  table xxxxxx rebuild partition pm1/all; //也正是drop全部记录,然后再reinsert;能够解决磁盘碎片
     

数码太大,决定用分区来重构。

  1. alter table xxxxxx  truncate partition p1,p2;  
  2. alter table xxxxxx  truncate partition all;  
  3. 或  
  4. delete from xxxxxx where separated < ‘2006-01-01’ or (separated >= ‘2006-01-01’ and separated<‘2011-01-01’);  
  1. alter table xxxxxxx drop partition p0; //能够去除跋扈分区  
  1. alter  table xxxxxx check partition pm1/all;  

Sql代码  

 

Sql代码  

 

注意: 

  1. 范围分区增添分区只好在最大值前面扩张分区
  2. 持有分区的engine必须一律
    4.
    限量分区分区字段:integer、数值表达式、日期列,日期函数表明式(如year(),to_days(),to_seconds(),unix_timestamp())

那是二个日志表,记录了娱乐中物品的产出与消耗,原先有三个后台对这些表实行总括。。。。。(那要用一流Computer才干总结得出去呢),只好帮前人填坑了。。。。

 

 

 

转发地址:

Sql代码  澳门凯旋门注册网址 2

优化表

 
 

将旧的表数据导入到新表后,看到新表的数额都遍布到差别的区了!

 

 

根据RANGE分区的表是通过如下一种办法开始展览分区的,每一个分区包罗那一个分区表达式的值位于贰个加以的连天区间内的行。那一个区间要延续且无法相互重叠,使用VALUES
LESS THAN操作符来拓展定义。

前几日得到贰个表,将近有四千w数据,未有任何索引,主键。(建那表的相对是个姿首)

  1. alter table xxxxxxx add partition (partition p0 values less than(1993));  //只好增多大于分区键的分区  

Sql代码  

重定义分区(包罗重命名分区,伴随移动多少;合并分区)

Sql代码  澳门凯旋门注册网址 3

 

  1. alter  table tt2 optimize partition pm1; //在大方delete表数据后,能够回收空间和散装整理。但在5.5.30后补助。在5.5.30事先能够通过recreate+analyze来替代,纵然用rebuild+analyze速度慢
     

Sql代码  

 

Sql代码  

 

Sql代码  澳门凯旋门注册网址 4

澳门凯旋门注册网址 5

去除分区数据

  1. primary key和unique key必须包蕴在分区key的一有个别,不然在开创primary
    key和unique index时会报”E途胜RO哈弗 1503 (HY000)“
  1. alter table xxxxx reorganize partition p1,p3,p4 into (partition pm1 values less than(2006),  
  2. partition pm2 values less than(2011));  

Sql代码  

Sql代码  

删去分区

增加分区

相关文章