Mysql 表分区
是否支持分区:
mysql> show variables like '%partition%';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| have_partition_engine | YES |
+-----------------------+-------+
1 row in set (0.00 sec)
如果没有看到变量have_partition_engine的值为YES,那么MySQL的版本就不支持分区。
创建分区表:
DELIMITER // create table VMMoniterData (
id_ bigint not null AUTO_INCREMENT,
vmid varchar(75) null,
cpu varchar(75) null,
memory varchar(75) null,
bpsRead varchar(75) null,
bpsWrite varchar(75) null,
intranetRX0 varchar(75) null,
intranetRX1 varchar(75) null,
intranetWX0 varchar(75) null,
intranetWX1 varchar(75) null,
timeStamp datetime null,
PRIMARY KEY (id_,timeStamp)
) engine InnoDB PARTITION BY RANGE (TO_DAYS(timeStamp) ) (
PARTITION p1 VALUES LESS THAN ( TO_DAYS('20161101') ),
PARTITION p2 VALUES LESS THAN ( TO_DAYS('20161102') ),
PARTITION p3 VALUES LESS THAN ( TO_DAYS('20161103') ),
PARTITION p4 VALUES LESS THAN ( TO_DAYS('20161104') ),
PARTITION p5 VALUES LESS THAN ( TO_DAYS('20161105') ),
PARTITION p6 VALUES LESS THAN ( TO_DAYS('20161106') ),
PARTITION p7 VALUES LESS THAN ( TO_DAYS('20161107') ),
PARTITION p8 VALUES LESS THAN ( TO_DAYS('20161108') ),
PARTITION p9 VALUES LESS THAN ( TO_DAYS('20161109') ),
PARTITION p10 VALUES LESS THAN ( TO_DAYS('20161110') )
); //
DELIMITER ;
添加分区表:
ALTER TABLE VMMoniterData ADD PARTITION(PARTITION p315 VALUES LESS THAN (TO_DAYS('22190527')));
查看表分区情况:
SELECT
partition_name part,
partition_expression expr,
partition_description descr,
table_rows
FROM
INFORMATION_SCHEMA.partitions
WHERE
TABLE_SCHEMA = schema()
AND TABLE_NAME='VMMoniterData';
添加分区最大值
ALTER TABLE VMMoniterData ADD PARTITION (PARTITION p11 VALUES LESS THAN maxvalue);
删除分区
alter table VMMoniterData drop partition p0;
合并分区:
ALTER TABLE test REORGANIZE PARTITION p20161101,p20161102 INTO (
PARTITION p20161102 VALUES LESS THAN (TO_DAYS('20161102') )
);
拆分分区
ALTER TABLE test REORGANIZE PARTITION p20161102 INTO (
PARTITION p20161101 VALUES LESS THAN (TO_DAYS('20161101')),
PARTITION p20161102 VALUES LESS THAN (TO_DAYS('20161102'))
);
http://www.kubiji.cn/topic-id1558.html
mysql 碎片产生、mysql innodb碎片整理
注:随着数据库数据量的变大,如果要清除某个月的数据,用delete命令删除,mysql不会释放空间,必须整理碎片或者用修改引擎来重建表,才会释放空间,但是由于数据量很大,每次重建都得10-12小时的时间,太长了,想到了用mysql分区来解决这种弊病,通过删除分区,可以直接删除数据文件,那当然也可以释放空间。
分区的相关知识我就先不讲了,就说两点
分区字段不要有空值,因为空值会默认到无用分区中,这样查询会多扫描分区。
查询条件最好要带着分区字段,不然性能会很低,需要在所有分区里扫一遍。
Mysql 表分区的更多相关文章
- MySQL表分区技术
MySQL表分区技术 MySQL有4种分区类型: 1.RANGE 分区 - 连续区间的分区 - 基于属于一个给定连续区间的列值,把多行分配给分区: 2.LIST 分区 - 离散区间的分区 - 类似于按 ...
- Mysql 表分区和性能
以下内容节选自<Mysql技术内幕InnoDB存储引擎> mysql表分区: 分区功能并不是所有存储引擎都支持的,如CSV.MERGE等就不支持.mysql数据库支持的分区类型为水平分区( ...
- Mysql表分区的选择与实践小结
在一些系统中有时某张表会出现百万或者千万的数据量,尽管其中使用了索引,查询速度也不一定会很快.这时候可能就需要通过分库,分表,分区来解决这些性能瓶颈. 一. 选择合适的解决方法 1. 分库分表. 分库 ...
- MySQL 表分区详解MyiSam引擎和InnoDb 区别(实测)
一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...
- mysql表分区(摘自 MySQL表的四种分区类型)
一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了. 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区 ...
- MySQL表分区
MySQL的表分区 一.什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表.mysql5.1开始支持数据表分区了.如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以 ...
- mysql表分区、查看分区
原文地址:http://blog.csdn.net/feihong247/article/details/7885199 一. mysql分区简介 数据库分区 数据库分区是一种物理数据库设 ...
- MYSQL 表分区的 3 方法
背景知识: 表分区是把逻辑上同一范围的数据保存到同一个文件中,就和超市一样,把同类商品放在同一个区域,把不同的商品放在不同的地方.不同的是超市中 是根据用途分类的,表分区是根据它的取值区间来分的. 分 ...
- mysql表分区简述
一. 简介 数据库分区 数据库分区是一种物理数据库设计技术.虽然分区技术可以实现很多效果,但其主要目的是为了在特定的SQL操作中减少数据读写的总量以缩减sql语句的响应时间,同时对于应用来说分区完全是 ...
随机推荐
- js:使用js过程中遇到的一个小问题
在一个作业中使用了js,函数A调用函数B.当A和B中均含有变量i的时候,相关操作结果可能会出错. 将B中的i替换为j(j不存在于A中)后,结果正确. 目前考虑原因是两个变量i有相关性(或者说实际上就是 ...
- dubbo升级spring4与cxf
阿里的dubbo项目是基于spring2.x的.但之后停止更新了.当当网有根据dubbo扩展成dubbox,基于spring3.x,但我的项目中用的是spring4.x,于是fork了dubbox,自 ...
- 【linux】scp命令
scp的作用是在不同主机之间传输文件. 用法: scp user@host:/path1 path2 说明: 把远程主机host中path1的内容拷贝到当前主机的path2 user是远程主机登陆用户 ...
- jquery原生对象
获取jquery的原生对象: $("#div")[0]
- 创建cocos项目并打包
- tp框架之验证码
控制器 function yzm() { /*$config = array( 'fontSize' => 30, // 验证码字体大小 'length' => 4, // 验证码位数 ' ...
- [Spring] AOP, Aspect实例解析
最近要用到切面来统一处理日志记录,写了个小实例练了练手: 具体实现类: public interface PersonServer { public void save(String name); p ...
- 【Java 新建项目】使用程序对新项目的各个实体 创建Dao、DaoImpl、Service、ServiceImpl层的文件
首先给出基本Dao层代码: GenericDao.java package com.agen.dao; import java.io.Serializable; import java.util.Co ...
- 初识Angular
一.AngularJs简介 1.AngularJS使用了不同的方法,它尝试去补足HTML本身在构建应用方面的缺陷.AngularJS通过使用我们称为标识符(directives)的结构,让浏览器能够识 ...
- RStudio技巧02_Extract Function
RStudio 可以在 source 编辑器中分析一组选择的代码,并自动将其转化成再次使用的函数.任何选择中的"free"变量( 选择引用对象但不创建)将转化为函数参数. (也可使 ...