我的编程空间,编程开发者的网络收藏夹
学习永远不晚

mysql 每日新增表分区

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

mysql 每日新增表分区

1.创建表和表分区

DROP TABLE zy.time_partition;

CREATE TABLE zy.time_partition

(TIME DATETIME NOT NULL )ENGINE=INNODB DEFAULT CHARSET=utf8

PARTITION BY RANGE(TO_DAYS(TIME))

(PARTITION p20171031 VALUES LESS THAN (TO_DAYS('2017-11-01')),

PARTITION p20171101 VALUES LESS THAN (TO_DAYS('2017-11-02'))

#DATA DIRECTORY '/data/2010-07-16'

#INDEX DIRECTORY '/data/2010-07-16'

);

2.创建每日新增表分区的存储过程

DROP PROCEDURE IF EXISTS zy.time_partition_procedure;

DELIMITER $$

CREATE PROCEDURE zy.time_partition_procedure()

BEGIN

select replace(b.partition_name,'p','') into @in_date from information_schema.PARTITIONS b where b.table_name ='time_partition' order by b.partition_ordinal_position desc limit 1;

set @max_date= DATE_ADD(@in_date,INTERVAL 1 DAY)+0 ;

set @date= DATE_ADD(@in_date,INTERVAL 1 DAY)+0 ;

SET @sql=CONCAT('ALTER TABLE zy.time_partition add PARTITION (PARTITION p',@date,' VALUES LESS THAN (TO_DAYS(''',to_days(@max_date1),''')));');

SELECT @sql;

PREPARE strsql FROM @sql;    #预执行sql

EXECUTE strsql;           #执行sql  

DEALLOCATE PREPARE strsql;   #释放sql

COMMIT;

END;

3.创建每天执行存储的事件

delimiter $$

create event zy.time_partition_event

on schedule every 1 day start date_add(curent()+1,interval 3 hour)

on completion preserve

enable

do

begin

call zy.time_partition_procedure();

end;


4.

#查看是否支持表分区

SHOW VARIABLES LIKE '%partition%'

#查询表的所有分区

SELECT * FROM information_schema.PARTITIONS a WHERE a.table_name IN ('time_partition')ORDER BY partition_ordinal_position DESC;

#新增表分区

ALTER TABLE zy.time_partition ADD PARTITION (PARTITION p20171102 VALUES LESS THAN (TO_DAYS('2017-11-02')));


#删除表的分区

ALTER TABLE zy.time_partition  DROP PARTITION p20171101;


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

mysql 每日新增表分区

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

下载Word文档

猜你喜欢

mysql分区表:日期分区

mysql分区表:日期分区 1.创建分区表2.查看分区3.添加分区4.存储过程:分区删除与创建5.事件定时6.触发器设计:子表每插入一行,总表获得一行7.创建索引8.添加枚举型字段 1.创建分区表 CREATE TAB
2023-08-21

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

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

怎样给Kafka新增分区

这篇文章主要介绍了怎样给Kafka新增分区问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-12-27

mysql分区表的增删改查的实现示例

本文详细介绍了MySQL分区表的增删改查操作示例。增删改查操作分区包括插入数据、删除数据、修改数据和查询数据。插入数据时使用PARTITIONBY子句指定分区,删除数据时使用DELETE语句并指定分区,修改数据时使用UPDATE语句并指定分区,查询数据时可以使用SELECT语句查询特定分区或所有分区。为了优化查询性能,建议使用分区键作为查询条件,使用覆盖索引减少数据访问,并合理分配数据到分区中以实现均匀的数据分布。
mysql分区表的增删改查的实现示例
2024-04-02

更新 MySQL 日期并增加一年?

您可以使用 MySQL 的内置函数 date_add()。语法如下 -UPDATE yourTableName SETyourDateColumnName=DATE_ADD(yourDateColumnName,interval 1 ye
2023-10-22

更新 MySQL 日期并增加一年

要更新MySQL日期并增加一年,可以使用DATE_ADD函数。以下是一个示例查询:UPDATE your_tableSET your_date_column = DATE_ADD(your_date_column, INTERVAL 1 Y
2023-10-20

Oracle如何为分区表添加新分区

要为分区表添加新分区,可以使用ALTER TABLE语句并指定ADD PARTITION子句。下面是一个示例:ALTER TABLE your_partitioned_tableADD PARTITION new_partitionV
Oracle如何为分区表添加新分区
2024-04-20

详解MySQL分区表

前言: 分区是一种表的设计模式,通俗地讲表分区是将一大表,根据条件分割成若干个小表。但是对于应用程序来讲,分区的表和没有分区的表是一样的。换句话来讲,分区对于应用是透明的,只是数据库对于数据的重新整理。本篇文章给大家带来的内容是关于MyS
2022-05-27

编程热搜

目录