Mysql分区

– **

Mysql 分区

日分区、月分区、年分区

**
– 分区表创建

CREATE TABLE T_DATA_2021_DAY_TEST 
   (TIMEST VARCHAR(24) COMMENT '账期(日)', 
	TIMEST2 VARCHAR(24) COMMENT '账期(月)',  
	COL_1 VARCHAR(60) COMMENT '值1', 
	COL_2 VARCHAR(60) COMMENT '值2', 
	COL_3 VARCHAR(60)COMMENT '值3', 
	COL_4 VARCHAR(60)COMMENT '值4' , 
	COL_5 VARCHAR(60)COMMENT '值5', 
	COL_6 VARCHAR(60)COMMENT '值6', 
	COL_7 VARCHAR(60)COMMENT '值7', 
	COL_8 VARCHAR(60)COMMENT '值8',

	 KEY `T_DATA_2021_DAY_IND1` (`TIMEST`) USING BTREE,
   KEY `T_DATA_2021_DAY_IND2` (`TIMEST2`) USING BTREE

   )   COMMENT '2021年日数据表'

PARTITION BY RANGE COLUMNS(TIMEST) (
	 
    PARTITION P20210101 VALUES LESS THAN ( '20210102' )
		-- ......  分区语句

);

– 替换表名

--  rename table tbl_name to new_tbl_name
rename table T_DATA_2021_DAY  to T_DATA_2021_DAY_DROP
rename table T_DATA_2021_DAY_TEST  to T_DATA_2021_DAY

–导入数据

INSERT INTO T_DATA_2021_DAY
SELECT * FROM T_DATA_2021_DAY_DROP

–删除未分区表

DROP TABLE T_DATA_2021_DAY_DROP

– 在oracle 中执行此语句 得到结果复制到上面分区语句下
– 分区:

WITH lvl AS
 (SELECT to_char((p + LEVEL-1),'yyyymmdd') p,to_char((p + LEVEL),'yyyymmdd') p1
    FROM (SELECT to_date('20210101', -- 从哪天开始创建分区
                         'yyyymmdd') p
            FROM dual)
  CONNECT BY LEVEL <= 365 -- 一次性创建多少天的数据
  )
SELECT ' partition P' || p ||
       ' values less than  ('''|| p1 || '''),' a
  FROM lvl
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值