mysql 5.1的几种分区类型

本文介绍了MySQL数据库分区的优势,包括更大的数据存储能力、高效的数据增删、查询优化等,并详细解释了RANGE、LIST、HASH及KEY四种分区类型的特点。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

啊呀~忙了好一段时间~数据库的优化说了好久~没精力去动一点点,今晚突然起兴致,学习一下这个mysql的分区功能,当然,搞这个的出发点跟某司没一毛钱关系~

 

这个学习笔记这里只做个简单归纳, 具体可参看mysql文档 http://dev.mysql.com/doc/refman/5.1/zh/partitioning.html

 

先来说说分区的一些优点:

 

1 与单个磁盘或文件系统分区相比,可以存储更多的数据。

2 对于那些已经失去保存意义的数据, 通常可以通过删除与那些数据有关的分区, 很容易地删除那些数据. 相反, 在某些情况下, 添加新数据的过程又可以通过为那些新数据专门增加一个新的分区, 来很方便地实现.

3 一些查询可以得到极大的优化, 这主要是借助于满足一个给定WHERE 语句的数据可以只保存在一个或多个分区内, 这样在查找时就不用查找其他剩余的分区. 因为分区可以在创建了分区表后进行修改, 所以在第一次配置分区方案时还不曾这么做时,可以重新组织数据, 来提高那些常用查询的效率.

4 涉及到例如SUM() 和 COUNT()这样聚合函数的查询,可以很容易地进行并行处理。这种查询的一个简单例子如 “SELECT salesperson_id, COUNT(orders) as order_total FROM sales GROUP BY salesperson_id;”. 通过“并行”, 这意味着该查询可以在每个分区上同时进行, 最终结果只需通过总计所有分区得到的结果.

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

 

 

mysql5.1目前支持RANGE, HASH, LIST, KEY几种分区类型.

 

RANGE分区 : 基于属于一个给定连续不重叠区间的列值,把多行分配给分区. 也就是说把一个表按分区表达式划分为多个连续的区间, 分区内的行乎合该分区表达式的值给定的区间.

 

LIST分区 : LIST分区与RANGE分区很相似, 不过RANGE分区的定义和选择是从属于某个连续的区间值集中进行, 而LIST分区的定义和选择则是基于某列的值从属于一个值列表集(通常为数值集合)中的一个值.

 

HASH分区 : HASH分区主要用来确保数据在预先确定数目的分区中"平均分布".  在HASH分区中,不需要给定一个区间或列值集合, MySQL 自动完成这些工作,我们所要做的只是基于将要被哈希的列值指定一个列值(字段)或表达式, 以及指定被分区的表将要被分割成的分区数量.

 

KEY分区 : KEY分区类似于HASH分区, 它们的区别是HASH分区使用的用户定义的表达式,而KEY分区的哈希函数是由MySQL 服务器提供.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值