mysql动态分区_MySQL动态创建分区
按日期分区的数据表,我们希望每年、每个月甚至每天动态创建一个分区,这种情况就需要用事件和存储过程来实现动态添加分区,下面的存储过程是按年分区增加当年分区的过程:
BEGIN
#Routine body goes here...
DECLARE currentTime date DEFAULT CURDATE();
DECLARE partName VARCHAR(12);
DECLARE i_part_name VARCHAR(12);
DECLARE i_flag INT DEFAULT 0;
DECLARE currentYear INT DEFAULT 0;
#指针遍历分区名,避免定义重复分区名
DECLARE cur_partition CURSOR for select partition_name part from information_schema.PARTITIONS
where TABLE_SCHEMA = schema() and TABLE_NAME='test';
#此句必须添加,不然会出现死循环,含义是当遍历指针为空后赋值此变量为NULL
DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET i_part_name = NULL;
#定义欲创建的分区名,用于遍历匹配已有分区名
SET partName=CONCAT('part_',YEAR(currentTime));
OPEN cur_partition;
FETCH cur_partition into i_part_name;
WHILE (i_part_name IS NOT NULL)
DO
IF i_part_name = partName THEN
SET i_flag = 1;
END IF;
FETCH cur_partition into i_part_name;
END WHILE;
CLOSE cur_partition;
#如果没有创建分区则创建当前年份的分区
IF i_flag = 0 THEN
SET currentYear=YEAR(currentTime) + 1;
SET @v_add_s = CONCAT('ALTER TABLE test ADD PARTITION (PARTITION ',partName,' VALUES LESS THAN (',currentYear,'))');
prepare stmt from @v_add_s;
execute stmt;
deallocate prepare stmt;
END IF;
END
mysql动态分区_MySQL动态创建分区相关推荐
- maxvalue mysql自动分区_mysql的partition分区
前言:当一个表里面存储的数据特别多的时候,比如单个.myd数据都已经达到10G了的话,必然导致读取的效率很低,这个时候我们可以采用把数据分到几张表里面来解决问题. 方式一:通过业务逻辑根据数据的大小通 ...
- mysql如何进行分区_mysql如何进行分区_mysql分区有哪些方法
MySQL 可应用于多种语言,包括 PERL, C, C++, JAVA 和 PHP. 在这些语言中,MySQL 在 PHP 的 web 开发中是应用最广泛.大家知道mysql如何分区的吗?下面由学习 ...
- mysql横向分区_MySQL 横向表分区之RANGE分区小结
MySQL 横向表分区之RANGE分区小结 by:授客 QQ:1033553122 目录 简介 mysql表分区--RANGE分区,属于横向分区.举例说,假如有100条数据,分成十份,前10条数据放到 ...
- mysql的hash分区_MySQL中的分区(五)HASH分区
HASH分区主要用来分散热点读,取保数据在预先确定个数的分区中尽可能的平均分布.对一个表执行HASH分区时,MySQL会对分区键应用一个散列函数,一次确定数据应该放在哪一个分区中. MySQL分区支持 ...
- 添加mysql 函数库_mysql函数创建
如何使用MySQL提升权限 前不久网上公开了一个MySQL Func的漏洞,讲的是使用MySQL创建一个自定义的函数,然后通过这个函数来攻击服务器.最早看到相关的报道是在o-otik上,但是公布的是针 ...
- mysql按章_mysql按时间范围分区
1.问题描述 mysql的开发人员经常按时间范围分区不知道时间上怎么写,笔者把总结归纳下来,能帮助自已和分享成果. 2.解决问题 mysql对时间范围分区,可以是按年,按月,按天,按分,按秒,如下案例 ...
- mysql 字符串解析_MySQL 动态字符串处理详解
MySQL中,常常会看到一些关于动态字符串的处理,列如:DYNAMIC_STRING. 为了记录动态字符串的实际长度,缓冲区的最大长度,以及每次字符串需要调整时,及时分配新的内存,以及调整长度.MyS ...
- mysql 动态游标_mysql动态游标与mysql存储过程游标(示例)
-- 建立测试表和数据 create table webuser (username varchar(10)); insert into webuser values ('a1'),('a2'),(' ...
- mysql如何动态查询_Mysql动态查询
if条件查询 格式: 添加到sql的语句 where标签 简化SQL语句中WHERE条件判断 智能处理and和or 如果使用几个if条件标签,如果第一个条件不成立,那么该sql语句就不成立了. 把所有 ...
最新文章
- Zynq7000术语PL,PS,APU,SCU介绍
- 001_JavaScript简介
- 象SaaS一样用亚马逊Kinesis Analytics做大数据分析
- 【框架】[Spring]XML配置实现AOP拦截-切点:JdkRegexpMethodPointcut
- mySQL初学者一些最常用的命令行
- 《A Seat at the Table》作者访谈录
- vijos1237-隐形的翅膀【离散化】
- 使你的C/C++代码支持Unicode
- 【debug】moduleNotFoundError:No module named 'exceptions'
- Python学习笔记:集合(set)
- learn go ifelse
- js实现侧边栏信息展示效果
- 检验学习笔记-寄生虫
- 【图像边缘检测】基于matlab蚁群聚类图像边缘检测【含Matlab源码 728期】
- Xshell 如何导入 PuTTYgen 生成的 key
- 三足鼎立 – Mac 输入法横向对比
- 有关Intel主板驱动静默安装的一个坑
- 好分数班级等级C_2020高中分数线(广州|深圳|天津|广州|南宁|泉州|龙岩|武汉|沈阳|青岛|汉中|长春|四平|北京等)...
- 把steam上下载的GTA5转移到Epic中,免除Epic再次下载GTA5的方法
- Banner无限轮播