表分区

随着我们项目的发展,数据量越来越大,查询和持久化效率随之降低,所以在我们给相应的表 改成 分区表 

分区优点:
    1、对于那些已经失去保存意义的数据,通常可以通过删除与那些数据有关的分区,很容易地删除那些数据。 
    2、一些查询可以得到极大的 优化,这主要是借助于满足一个给定WHERE语句的数据可以只查询一个或多个分区内,
         这样在查找时就不用查找其他剩余的分区。
    3、涉及到例如SUM()和COUNT()这样聚合函数的查询,可以很容易地进行并行处理。
         这种查询的一个简单例子如 “SELECT user_id, COUNT (hobbys) as  hobbys_total  FROM userInfo GROUP BY user_id;”。
         通过“并行”,这意味着该查询可以在每个分区上同时进行,最终结果只需通过总计所有分区得到的结果。
 

其中分区有四种:

RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区。

LIST分区:类似于按RANGE分区,区别在于LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择。

 

 

HASH分区 与 KEY分区 类似,是按照某种算法对字段进行分区。


我们选用的是 RANGE分区 和 LIST分区
 
创建分区表     create table goods(
                         id int ......
                         gt_id....
                               *
                            PRIMARY KEY (`id`,`gt_id`)  
                            )ENGINE=InnoDB DEFAULT CHARSET=utf8  
 
                    PARTITION BY LIST (gt_id)  
                         
 (  
                            PARTITION pA VALUES IN (1),  
                            PARTITION pA VALUES IN (1), 
                           )
 

 增加删除分区语句:

        alter table T_part add partition(partition p2 values less than (MAXVALUE));  ---新增分区
        alter table T_part DROP partition p2; ----删除分区

转载于:https://www.cnblogs.com/dengheng/p/5798957.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值