MySql分区学习总结一:分区概述

MySql分区学习总结一:分区概述

通过看书和查资料对mysql的分区进行了简单了解。称还有映像记录一下,以便将来使用时回顾。

分区简述

什么是分区?
MySql从5.1以后开始支持分区功能。分区就是根据一定的规则,将数据库中的表分为多个更小的部分。但在逻辑上,还是只有一个表或者一个索引,在逻辑上这个表可能又几个物理分区对象组成。所以分区并不破坏表中数据的原子性,不违背第一范式(简单理解为表中不能有表)。每个分区都可作为一个单独的对象进行处理。

分区的好处
将数据进行分区对数据的处理操作有一定的好处,简单来说有一下4点:可以存储跟多数据、可以优化查询、对于不需要的数据删除时更加的方便,只用删除不用的分区即可、可以跨多个磁盘来分散数据的查询。

分区类型
分区主要包括一下四种类型:

RANGE :给一个连续的区间范围,将数据分到不同的范围中
LIST:和RANGE相似,不过他是基于枚举出的值列表分区
HASH:基于给定的分区个数,把数据分配到不同的分区
KEY:和HASH差不多

后面将对这些分区进行讲解

分区使用时的注意事项

1.不管是哪种分区,要么分区表上没有主键或者是唯一键,要么分区表的主键或者唯一键都必须包含分区键,不能使用主键或唯一键字段以为的其它字段进行分区。比如表中有个字段id是主键,那么就要用id作为分区的依据,不能用别的键例如年龄作为依据。但是,如果我就看着年龄顺眼,就想用年龄作为分区键怎么办。那么我们就可以把年龄和id作为一个复合主键,这样就可以用年龄作为分区键。具体的执行方法如下图:
在这里插入图片描述

2.在WINDOWS系统中的大小写是不敏感的,而在UNLX或Linux系统中的大小写敏感的。操作系统大小写是否敏感决定这数据库和表名的大小写是否敏感。但在分区中,分区的名字是不区分大小写的。例如分区 myparty和MyParty是没有区别的。

3.MySql的大部分存储引擎都支持分区,但MERGE和CSV引擎不支持分区。同一个表中的分区只能使用一种引擎。

以上就是对mysql分区的一些基本介绍,接下来将对个个分区类型进行详细的讲解。

mysql分区学习总结二:RANGE分区,LIST分区

猜你喜欢

转载自blog.csdn.net/Master_Kin/article/details/84575186