Mysql数据库优化-分区

四种分区算法 hash  key    list  range

依据业务逻辑分区:range,list

平均分配:hash,key

取余的算法(hash,key),增加分区,减少分区,数据不会收到影响,仅仅是重新分配数据到不同的分区.

条件的分区,增加没关系,删除分区,导致分区内的数据一同消失,类似删除表!

Demo

创建表时,需要指定当前表的分区,及其对于的分区算法:

最常用的分区逻辑,使用主键将数据平均分配到10个区中.hash算法就可以做到!

Drop table if exists‘zhangc’;

Create table‘zhangc’

(

Id  int  auto_increment,

Name varchar(32),

Birthday date,

Intro text,

Primary key(id)

)charset=utf8

利用id字段,对10取余(hash是取余算法)

Partition  by  hash(id)Partitions 10;

插入或其他的操作,常规操作即可,不需要有语法的改变,记录就被依据算法存储在某个区内

hash,使用给定的一个整数,对分区数量取余分区,hash(分区表达式),应该整数.

key,使用任意字段,对分区数据量取余分区,不要求是整数字段。MySQL会依据给定的字段的值,自己计算整数,去取余!

☆注意:分区字段要加入到primary key中.

range, 利用给定的范围条件,进行分区

list, 利用给定的列表值,进行条件分区

管理分区

取余(hash,key),增减分区数量即可.

增加分区数量

add partition partitions N

增加N个分区.

Alter  table‘zhangc’add partition partitions 5;

减少数量(合并分区)

coalesce partition N

减少N个分区.

Alter  table‘zhangc’coalescepartition 5;

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容