数据库根据时间自动创建分区的流程

1、创建分区表

CREATE TABLE `表名称` (
  `id` char(32) NOT NULL COMMENT '12位的imei',
  `ts` bigint(20) NOT NULL COMMENT '报文解析出来的时间戳',  
  `create_time` bigint(20) NOT NULL COMMENT '存入数据库时间戳',
  PRIMARY KEY (`id`,`ts`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin COMMENT=''
PARTITION BY RANGE COLUMNS(ts) (
  PARTITION `ts_2021_03_01` VALUES LESS THAN (1614614400000),
  PARTITION `ts_2021_03_02` VALUES LESS THAN (1614700800000),
  PARTITION `ts_2021_03_03` VALUES LESS THAN (1614787200000)
)

2、查看当前分区是否存在

SELECT * 
FROM information_schema.PARTITIONS 
WHERE table_schema='数据库名称' 
AND TABLE_NAME='表名称' 
AND partition_name='ts_2021_03_01'

3、上述查询有结果则说明有分区,无结果则说明无分区,需要建分区

ALTER TABLE `表名称` ADD PARTITION (partition ts_2021_03_04 VALUES LESS THAN (UNIX_TIMESTAMP('2021-03-05 00:00:00')*1000));

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值