广告
返回顶部
首页 > 资讯 > 数据库 >MySQL每天自动增加分区的实现
  • 478
分享到

MySQL每天自动增加分区的实现

MySQL自动增加分区MySQL增加分区 2022-08-11 15:08:25 478人浏览 独家记忆
摘要

有一个表tb_3a_huandan_detail,每天有300W左右的数据。查询太慢了,网上了解了一下,可以做表分区。由于数据较大,所以决定做定时任务每天执行存过自动进行分区。 1、在进行自动增加分区前一定得先对表手动分

有一个表tb_3a_huandan_detail,每天有300W左右的数据。查询太慢了,网上了解了一下,可以做表分区。由于数据较大,所以决定做定时任务每天执行存过自动进行分区。

1、在进行自动增加分区前一定得先对表手动分几个区

ALTER TABLE tb_3a_huandan_detail PARTITioN BY RANGE (TO_DAYS(ServiceStartTime))
(
    PARTITION p20160523 VALUES LESS THAN (TO_DAYS('2016-05-23')),
    PARTITION p20160524 VALUES LESS THAN (TO_DAYS('2016-05-24')),
    PARTITION p20160525 VALUES LESS THAN (TO_DAYS('2016-05-25')),
    PARTITION p20160526 VALUES LESS THAN (TO_DAYS('2016-05-26')),
    PARTITION p20160527 VALUES LESS THAN (TO_DAYS('2016-05-27'))
)

2、分区存过如下:

DELIMITER $$

USE `nres`$$

DROP PROCEDURE IF EXISTS `create_Partition_3Ahuadan`$$

CREATE DEFINER=`nres`@`%` PROCEDURE `create_Partition_3Ahuadan`()
BEGIN

  DECLARE EXIT HANDLER FOR sqlEXCEPTION ROLLBACK;
  START TRANSACTION;


  SELECT REPLACE(partition_name,'p','') INTO @P12_Name FROM INFORMATION_SCHEMA.PARTITIONS
  WHERE table_name='tb_3a_huandan_detail' ORDER BY partition_ordinal_position DESC LIMIT 1;
  SET @Max_date= DATE(DATE_ADD(@P12_Name+0, INTERVAL 1 DAY))+0;

  SET @s1=CONCAT('ALTER TABLE tb_3a_huandan_detail ADD PARTITION (PARTITION p',@Max_date,' VALUES LESS THAN (TO_DAYS (''',DATE(@Max_date),''')))');
  
  SELECT @s1;
  PREPARE stmt2 FROM @s1;
  EXECUTE stmt2;
  DEALLOCATE PREPARE stmt2;

  

  COMMIT ;
END$$

DELIMITER ;

3、增加定时事件

DELIMITER ||
CREATE EVENT Partition_3Ahuadan_event
     ON SCHEDULE
     EVERY 1 day STARTS '2016-05-27 23:59:59'
     DO
   BEGIN

     CALL nres.`create_Partition_3Ahuadan`;

END ||
DELIMITER ;

参考:

Http://blog.csdn.net/m582445672/article/details/7670743

http://blog.chinaUnix.net/uid-24086995-id-127389.html

到此这篇关于Mysql每天自动增加分区的实现的文章就介绍到这了,更多相关mysql 自动增加分区内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL每天自动增加分区的实现

本文链接: https://www.lsjlt.com/news/33653.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作