mysql分区

今天刚学习mysql分区技术,也是头一次写博客,以后慢慢养成好的学习习惯,加油!

mysql分区主要分为4种分区:

  Range分区:按照RANGE分区的表是每个分区包含那些分区表达式的值位于一个给定的连续区间内的行 

  优点:适合于日期类型  支持复合分区

  缺点:有限的分区

  个人理解:根据分区字段 将字段值分为不同的范围

  例: create table a(

        id int not null,

       fname varchar(30),

       typeid int    

       )

      parition by range(typeid){

       parition po values less then (6),

       parition p1 values less then (11),

       parition p2  values less then maxvalue

      };

     表示 创建a表 包含三个字段   根据typeid字段进行range分区 分成3个区 (小于6  6-10 10以上三个区)

   List分区:LIST分区中每个分区的定义和选择是基于某列的值从属于一个值列表集中的一个值,而RANGE分 区是从属于一个连续区间值的集合。

   优点:适合于有固定值的列 支持复合分区

   缺点:有限分区 插入的值不在list中 则数据丢失

  个人理解:根据有固定值的分区字段 将另一字段的值分配在不同的区里

   例:create table a(

        id int not null,

       typename varchar(30) COMMENT('东区','南区','北区') ,

       typeid int    

       )

      parition by list(typeid){

       parition pnanqv values in (1,3,5,7,9),

       parition pdongqv values in (2,4,6,8,10),

       parition pbeiqv  values in (11,12,13)

      };

     Hash分区:HASH分区主要用来确保数据在预先确定数目的分区中平均分布,你所要做的只是基于将要被哈希的列值指定一个列值或表达式,以 及指定被分区的表将要被分割成的分区数量

     优点:线性hash使得增加 删除和合并分区更快捷

     缺点:线性hash分区分布不均匀 而一般的hash分区较均匀

     个人理解:根据分区字段平均分区

    例:create table a(

        id int not null,

       typedate date COMMENT('1970-1-1') ,

       typeid int    

       )

      parition by hash(year( typedate)){

       paritions 4

      };

     key分区:按照KEY进行分区类似于按照HASH分区,除了HASH分区使用的用 户定义的表达式,而KEY分区的 哈希函数是由MySQL 服务器提供

     优点:列可以是字符型等其他非int类型

     缺点:效率较其他的要低

    


    学习网址:http://www.56.com/u31/v_NjkyNTIxNDg.html

转载于:https://my.oschina.net/u/2326074/blog/387226

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值