Mysql千万级别表分区优化

通过上篇文章(https://blog.csdn.net/qq_31150503/article/details/105450236)相信大家已经能够运用MyISAM进行水平分表优化接下来使用Mysql分区进行数据存储优化,也是目前公司采用的大批量数据存储优化方案。

方案:根据日期进行分区存储

1、创建分区表

-- 创建数据分区 根据日期进行分区存储
create table dept(
	id varchar(50) not null COMMENT 'id',
	dept_name varchar(20) DEFAULT null COMMENT '部分名称',
	creator varchar(50) DEFAULT null COMMENT '创建者',
	create_date datetime not null COMMENT '创建时间',
	updater varchar(50) DEFAULT null COMMENT '更新者',
	update_date datetime DEFAULT null COMMENT '更新时间',
	KEY (create_date,id),
	PRIMARY KEY (id,create_date)
) PARTITION by range columns(create_date)(
	partition p20200411 VALUES less than ('2020-04-11'),
	partition p20200412 VALUES less than ('2020-04-12'),
	partition p20200413 VALUES less than ('2020-04-13')
);

 2、初始化分区数据

--  初始化数据
INSERT INTO dept ( `id`, `dept_name`, `create_date`, `update_date` )
VALUES
	( '1', '技术部', now( ), now( ) );
	
INSERT INTO dept ( `id`, `dept_name`, `create_date`, `update_date` )
VALUES
	( '4', '运营部', '2020-04-10 13:26:02', '2020-04-10 13:26:02' );
	
INSERT INTO dept ( `id`, `dept_name`, `create_date`, `update_date` )
VALUES
	( '2', '销售部', '2020-04-11 13:26:02', '2020-04-11 13:26:02' );
	
INSERT INTO dept ( `id`, `dept_name`, `create_date`, `update_date` )
VALUES
	( '3', '管理部', '2020-04-12 13:26:02', '2020-04-12 13:26:02' );

 3、查询、删除、添加表分区

--  查询当前表分区情况
select * from information_schema.`PARTITIONS` WHERE table_name = 'dept';
--  添加新分区
alter table dept add partition (partition p20200414 values less than ('2020-04-14'));
--  删除分区数据
alter table dept drop partition p20200414;

 4、数据验证:通过

                    

 

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值