mssql 自动分区

mysql 自动分区详解
为什么要自动分区:因为在一张表里面的数据超过的百万条,查询速度很慢,所以增加自动分区功能,提高查询能力。
首先明确分区的几个步骤:

  1. 新建备份表
  2. 删除新表分区
  3. 交换分区
  4. 删除旧表分区
  5. 新增分区

    具体实现方法如下
    新建备份表:

    set @back=concat('create table 新建schema名字.分区名字 like 表名');   
                     PREPARE stmt1 FROM @back;  
                     EXECUTE stmt1;  
                     DEALLOCATE PREPARE stmt1;  

删除新表分区

set @deleNewPartition=concat('alter table 新建schema名字.分区名字 REMOVE PARTITIONING');            
                     PREPARE stmt1 FROM @deleNewPartition;  
                     EXECUTE stmt1;  
                     DEALLOCATE PREPARE stmt1; 

交换分区表

set @exchangePartition=concat('alter table 表名 exchange partition ',旧表分区的名字,' with table 新建schema名字.创建分区名字);     
                     PREPARE stmt2 FROM @exchangePartition;  
                     EXECUTE stmt2;  
                     DEALLOCATE PREPARE stmt2;

删除旧表分区

SET @v_delete=concat('alter table pack_data_info drop PARTITION '旧表分区的名称);
                    PREPARE stmt3 from @v_delete; 
                    EXECUTE stmt3;
                    DEALLOCATE PREPARE stmt3;

新增分区

SET @v_add=concat('ALTER TABLE pack_data_info ADD PARTITION (PARTITION 上个分区的名字 VALUES LESS THAN (TO_DAYS(分区的时间))');                 
                    PREPARE stmt4 from @v_add;              
                    EXECUTE stmt4;
                    DEALLOCATE PREPARE stmt4;

差看分区


 SELECT partition_name,partition_expression,partition_description,table_rows 
 FROM information_schema.PARTITIONS 
 WHERE table_schema = SCHEMA() AND table_name='表名'

创建schema
create schema 名字
什么叫做schema:schema可以简单的理解为一个库,创建一个schema就是在创建一个数据库,我们将需要备份的数据放在这个schema库中。

请大家多多评论

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值