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语句的响应时间,同时对于应用来说分区完全是 ...
随机推荐
- 基于netty轻量的高性能分布式RPC服务框架forest<上篇>
工作几年,用过不不少RPC框架,也算是读过一些RPC源码.之前也撸过几次RPC框架,但是不断的被自己否定,最近终于又撸了一个,希望能够不断迭代出自己喜欢的样子. 顺便也记录一下撸RPC的过程,一来作为 ...
- node08-express
目录:node01-创建服务器 node02-util node03-events node04-buffer node05-fs node06-path node07-http node08-exp ...
- MySqlNDB使用自带的ndb_setup.py安装集群
在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...
- EF多对多更新报错(TableNoTracking引发的bug)
实体映射关系如下,SISTUser和SISTUserRoles存在多对多的关系,生成中间表 public partial class SISTUserMap: EntityTypeConfigurat ...
- 用javascript设置和读取cookie的例子
请看下面用javascript设置和读取cookie的简单例子,现在的问题是,如果要设置的是一个cookie集,比如在cookie1集中有uname,uid两组信息,应该如何写呢?cookie(&qu ...
- [OPENCV] 第一个程序 识别颜色
它可以鉴别出图像中含有给定颜色的所有像素,该算法输入的是图像以及颜色,并返回表示含有指定颜色的像素的二值图像.该算法还需要指定另外一个参数,即对颜色偏差的容忍度. 实现效果 实现后 #include ...
- Dw CS 破解
据说,CS5的破解也可以用CS6的破解方法,不过可能本人太菜,有所失误,总是不成功,安装成功后,打开总是提示 : 我们无法开始您的Adobe Dreamweaver cs5 subscription ...
- Qt实现端口扫描器
首先展示一下效果: 界面通过Qt设计师做出来的. 主要有两个类. 首先主函数: #include "mainwindow.h" #include <QApplication& ...
- 希尔伯特矩阵(Hilbert matrix)
例: [ 1 1/2 1/3 1/2 1/3 1/4 1/3 1/4 1/5 ] 矩阵的一种,其元素A(i,j)=1/(i+j-1),i,j分别为其行标和列标. 即: [1,1/2,1/3,- ...
- 从vue1.0到vue2.0遇到的一些问题的记录
1.取消v-el的使用方式,改为refs使用 获取指定的dom元素 html:<div ref="div"></div> js: $refs.div 问题: ...