mysql 分区键_mysql分区

分区就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。分区对应用来说是完全透明的,不影响应用的业务逻辑创建分区,是对数据表,和索引表,同时创建分区的。不能分别创建分区;同时也不能对部分数据进行分区;分区在创建完成之后,管理员也无法动态更改;mysql分区的优点主要包括:和单个磁盘...
摘要由CSDN通过智能技术生成

分区

就访问数据库的应用而言,逻辑上只有一个表或一个索引,但是实际上这个表可能由数10个物理分区对象组成,每个分区都是一个独立的对象,可以独自处理,可以作为表的一部分进行处理。

分区对应用来说是完全透明的,不影响应用的业务逻辑

创建分区,是对数据表,和索引表,同时创建分区的。

不能分别创建分区;同时也不能对部分数据进行分区;

分区在创建完成之后,管理员也无法动态更改;

mysql分区的优点主要包括:

和单个磁盘或者文件系统分区相比,可以存储更多数据

优化查询。在where子句中包含分区条件时,可以只扫描必要的一个或多个分区来提高查询效率。

对于已经过期或者不需要保存的数据,可以通过删除与这些数据有关的分区来快速删除数据

跨多个磁盘来分散数据查询,以获得更大的查询吞吐量

分区键:partition key

查看是否支持分区:

mysql> show variables like '%partition%';+-------------------+-------+

| Variable_name | Value |

+-------------------+-------+

| have_partitioning | YES |

+-------------------+-------+

分区类型

range分区:基于一个给定连续区间范围,把数据分配到不同的分区。

list分区:类似range分区,区别在于list分区是基于枚举的值列表分区,range是基于给定的连续区间范围分区

hash分区:基于给定的分区个数,把数据分配到不同的分区

key分区:类似与hash分区

5.1 版本range,list,hash,分区键,必须是int,或者表达式返回int类型;

5.5 版本 的range,list分区,已经支持非整数分区了;

key分区,可以使用除blob,text之外的类型列作为分区键;

如果存在主键/唯一键字段,则不能使用除主键/唯一键字段之外的其他字段进行分区。

range分区:

利用取值范围将数据分成分区,区间要连续并且不能相互重叠;

使用values less than 操作符按照进行分区定义:

注意:分区只能在建表的时候进行,建完表之后,只能增加分区内容;

PARTITION BY RANGE (store_id)

( PARTITION p0 VALUES LESS THAN (10) )

mysql> show create tableemp;| emp | CREATE TABLE`emp` (

`id`int(11) NOT NULL,

`store_id`int(11) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=latin1/*!50100 P

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值