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语句的响应时间,同时对于应用来说分区完全是 ...
随机推荐
- C++ Bitstream类
从raknet上剥下来的 比较适用于前后端通讯,可以对BitStream进行二次封装,方便使用. BitStream.h: #ifndef __BITSTREAM_H #define __BITSTR ...
- LeetCode 64 Minimum Path Sum
Problem: Given a m x n grid filled with non-negative numbers, find a path from top left to bottom ri ...
- tableview最后一行显示不全
最后一行显示不全是因为表格的高度大于了控制view的高度,减小表格的高度小于的等于控制的view的高度即可
- Linux中文件颜色所代表的属性和颜色
绿色文件: 可执行文件,可执行的程序 红色文件:压缩文件或者包文件 蓝色文件:目录 白色文件:一般性文件,如文本文件,配置文件,源码文件等 浅蓝色文件:链接文件,主要是使用ln命令 ...
- *****linux下redis安装
我用的系统是:redhat [root@infa ~]# wget http://download.redis.io/releases/redis-2.8.12.tar.gz tar xzf redi ...
- 【DWR系列03】- DWR主要类详解
img { border: 1px solid black } 一.简介 首先应该了解这个jar包主要的类,了解了类,就了解了DWR.DWR的在线javadoc:http://directwebrem ...
- SQL Server 系统数据库
Sql Server的系统数据库分为:master.model.msdb,resouce和tempdb,这五个数据库在SQL Server中各司其职,作为研发人员,很有必要了解这几个数据库的职责,下面 ...
- Hadoop中的问题排查思路
一.概述: 在实际使用hadoop的过程中,由于涉及到多台服务器.每台机器上可能还有多个服务等.所以当集群环境出现问题时,快速定位到错误出现的地方尤为重要. 在排查错误的过程中,基本上就是通过既有的工 ...
- Windows远程桌面打印机映射
计算机的打印机驱动能打印,需要满足两个条件,一个是有打印驱动本身,一个是要有连接好了的端口.这样,打印作业就会被打印驱动程序封装成一种打印机能识别的组织形式,然后通过打印端口发送给打印机,然后打印! ...
- ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
有时候,当我们使用"mysql"."mysqladmin"."mysqldump"等命令管理数据库时,服务器抛出类似如下错误: 一.错误现场 ...