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语句的响应时间,同时对于应用来说分区完全是 ...
随机推荐
- 第三天--html列表
<!Doctype html><html> <head> <meta charset="utf-8"> ...
- Linux学习记录
---恢复内容开始--- linux与unix的关系 linux是借鉴了unix设计思想,也称linux位类unix系统. Linux常用命令 1.命令基本格式 命令[选项][参数] 注意:个别命令不 ...
- Tomcat绑定IPV4端口
使用下面的方法可以绑定到IPV4, 在<tomcat>/bin目录下新建setenv.sh,如果没有话,然后添加如下内容: JAVA_OPTS="$JAVA_OPTS -Djav ...
- Linux下设置环境变量
setenv(set environment variable) 功能说明:查询或显示环境变量. 语 法:setenv [变量名称][变量值] 补充说明:setenv为tsch中查询或设置环境变量的指 ...
- SVN数据仓库迁移
1.在新服务器上部署环境 yum -y install subversion 2.备份原服务器数据仓库 svnadmin dump /home/myrepos >/data/svn_dump s ...
- Lintcode 157. 判断字符串是否没有重复字符
------------------------ 因为字符究竟是什么样的无法确定(比如编码之类的),恐怕是没办法假设使用多大空间(位.数组)来标记出现次数的,集合应该可以但感觉会严重拖慢速度... 还 ...
- Toad for Oracle
# 设置schema browser 多标签
- linux 如何查找io的进程
[root@NB ok]# echo chenlin|base64;echo Y2hlbmxpbgo= [root@NB ok]# yum search iotop Loaded plugins: f ...
- 使用Lucene索引和检索POI数据
1.简介 关于空间数据搜索,以前写过<使用Solr进行空间搜索>这篇文章,是基于Solr的GIS数据的索引和检索. Solr和ElasticSearch这两者都是基于Lucene实现的,两 ...
- 亚马逊S3下载上传文件
引用网址: http://www.jxtobo.com/27697.html 下载 CloudBerry Explorer http://www.cloudberrylab.com/download- ...