分区表的另一个好处是对于应用程序来说不用修改代码,通过对后端数据库进行设置,以表的时间字段做分区字段,就可以轻松实现表的拆分,需要注意的是查询字段必须是分区键,否则会遍历所有的分区表,下面看一下具体的实施过程:
Step 1:首先,创建分区表。在这里我们就以perf_biz_vm表为例,创建相同表结构的新表,并把它命名为perf_biz_vm_new,利用create_time索引字段做分区字段,按天做分区并与主键一起创建联合索引,创建语句:
代码如下:
- CREATE TABLE `perf_biz_vm_new` (
-
- `CREATE_TIME` datetime NOT COMMENT '性能采集时间',
-
- `VM_ID` varchar(80) NOT COMMENT '虚拟机ID',
-
- `PROCESSOR_USED` varchar(100) DEFAULT COMMENT 'CPU利用率(%)',
-
- `MEM_USED` varchar(100) DEFAULT COMMENT '内存的使用率(%)',
-
- `MEM_UTILITY` varchar(100) DEFAULT COMMENT '可用内存量(bytes)',
-
- `BYTES_IN` varchar(100) DEFAULT COMMENT '流入流量速率(Mbps)',
-
- `BYTES_OUT` varchar(100) DEFAULT COMMENT '流出流量速率(Mbps)',
-
- `PROC_RUN` varchar(100) DEFAULT COMMENT 'CPU运行队列中进程个数',
-
- `WRITE_IO` varchar(100) DEFAULT COMMENT '虚拟磁盘写入速率(Mb/s)',
-
- `READ_IO` varchar(100) DEFAULT COMMENT '虚拟磁盘读取速率(Mb/s)',
-
- `PID` varchar(36) NOT ,
-
- PRIMARY KEY (`PID`,`CREATE_TIME`),
-
- KEY `mytable_categoryid` (`CREATE_TIME`) USING BTREE,
-
- KEY `perf_biz_vm_vm_id_create_time` (`VM_ID`,`CREATE_TIME`)
-
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='虚拟机性能采集表'
-
- /*!50500 PARTITION BY RANGE COLUMNS(CREATE_TIME)
-
- (PARTITION p20180225 VALUES LESS THAN ('20180226') ENGINE = InnoDB,
-
- PARTITION p20180226 VALUES LESS THAN ('20180227') ENGINE = InnoDB,
-
- PARTITION p20180227 VALUES LESS THAN ('20180228') ENGINE = InnoDB,
-
- PARTITION p20180228 VALUES LESS THAN ('20180229') ENGINE = InnoDB,
-
- PARTITION p20180229 VALUES LESS THAN ('20180230') ENGINE = InnoDB) */
(编辑:惠州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|