MySQL创建管理KEY分区


Posted in MySQL onApril 13, 2022

介绍

KEY分区和HASH分区相似,但是KEY分区支持除text和BLOB之外的所有数据类型的分区,而HASH分区只支持数字分区,KEY分区不允许使用用户自定义的表达式进行分区,KEY分区使用系统提供的HASH函数进行分区。当表中存在主键或者唯一键时,如果创建key分区时没有指定字段系统默认会首选主键列作为分区字列,如果不存在主键列会选择非空唯一键列作为分区列,注意唯一列作为分区列唯一列不能为null。

一、常规KEY

1.创建分区

CREATE TABLE tb_key (
    id INT ,
    var CHAR(32) 
)
PARTITION BY KEY(var)
PARTITIONS 10;
SELECT PARTITION_NAME,PARTITION_METHOD,PARTITION_EXPRESSION,PARTITION_DESCRIPTION,TABLE_ROWS,SUBPARTITION_NAME,SUBPARTITION_METHOD,SUBPARTITION_EXPRESSION 
FROM information_schema.PARTITIONS WHERE TABLE_SCHEMA=SCHEMA() AND TABLE_NAME='tb_key';
INSERT INTO tb_key() VALUES(1,'星期一'),(2,'1998-10-19'),(3,'new'),(4,'非常好'),(5,'5');

MySQL创建管理KEY分区

二、LINEAR KEY

同样key分区也存在线性KEY分区,概念和线性HASH分区一样。

1.创建分区

CREATE TABLE tb_keyline (
    id INT NOT NULL,
    var CHAR(5)
)
PARTITION BY LINEAR KEY (var)
PARTITIONS 3;

MySQL创建管理KEY分区

三、分区管理

key分区管理和hash分区管理是一样的,只能删除和增加分区,这里不再做详细介绍。

1.删除2个分区

ALTER TABLE tb_key COALESCE PARTITION 2;

2.增加三个分区

ALTER TABLE tb_key add PARTITION partitions 3;

四、移除表的分区

ALTER TABLE tablename
REMOVE PARTITIONING ;

注意:使用remove移除分区是仅仅移除分区的定义,并不会删除数据和drop PARTITION不一样,后者会连同数据一起删除

总结

KEY分区和HASH分区类似,在处理大量数据记录时能有效的分散数据热点。

到此这篇关于MySQL分区之KEY分区的文章就介绍到这了!

MySQL 相关文章推荐
MySQL infobright的安装步骤
Apr 07 MySQL
MySQL Innodb关键特性之插入缓冲(insert buffer)
Apr 08 MySQL
新手必备之MySQL msi版本下载安装图文详细教程
May 21 MySQL
一看就懂的MySQL的聚簇索引及聚簇索引是如何长高的
May 25 MySQL
MySQL 常见的数据表设计误区汇总
Jun 07 MySQL
MySQL 百万级数据的4种查询优化方式
Jun 07 MySQL
MySQL系列之六 用户与授权
Jul 02 MySQL
一条 SQL 语句执行过程
Mar 17 MySQL
mysql数据插入覆盖和时间戳的问题及解决
Mar 25 MySQL
MySQL学习必备条件查询数据
Mar 25 MySQL
MySQL索引 高效获取数据的数据结构
May 02 MySQL
MySQL 逻辑备份 into outfile
May 15 MySQL
MySQL创建管理HASH分区
Apr 13 #MySQL
MySQL创建管理RANGE分区
Apr 13 #MySQL
MySQL创建管理LIST分区
Apr 13 #MySQL
MySql分区类型及创建分区的方法
Apr 13 #MySQL
深入理解mysql事务隔离级别和存储引擎
mysql使用 not int 子查询隐含陷阱
Apr 12 #MySQL
MySQL数据库如何使用Shell进行连接
You might like
用php来检测proxy
2006/10/09 PHP
一个基于phpQuery的php通用采集类分享
2014/04/09 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP实现的多文件上传类及用法示例
2016/05/06 PHP
PHP sleep()函数, usleep()函数
2016/08/25 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
php curl发送请求实例方法
2019/08/01 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
JavaScript中“基本类型”之争小结
2013/01/03 Javascript
JQuery 文本框回车跳到下一个文本框示例代码
2013/08/30 Javascript
javascript 实现键盘上下左右功能的小例子
2013/09/15 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
javascript实现类似java中getClass()得到对象类名的方法
2015/07/27 Javascript
jQuery实现自动切换播放的经典滑动门效果
2015/09/12 Javascript
Bootstrap CSS布局之按钮
2016/12/17 Javascript
webpack引入eslint配置详解
2018/01/22 Javascript
详解使用jQuery.i18n.properties实现js国际化
2018/05/04 jQuery
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
微信小程序tabBar 返回tabBar不刷新页面
2019/07/25 Javascript
JS+HTML实现自定义上传图片按钮并显示图片功能的方法分析
2020/02/12 Javascript
解决vue的touchStart事件及click事件冲突问题
2020/07/21 Javascript
[24:42]VP vs TNC Supermajor小组赛B组 BO3 第三场 6.2
2018/06/03 DOTA
[36:45]TNC vs VGJ.S 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python基于OpenCV实现视频的人脸检测
2018/01/23 Python
Python多线程应用于自动化测试操作示例
2018/12/06 Python
Python爬虫文件下载图文教程
2018/12/23 Python
学习python分支结构
2019/05/17 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
eDreams澳大利亚:预订机票、酒店和度假产品
2017/04/19 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
建筑工程实习自我鉴定
2013/09/19 职场文书
商务经理岗位职责
2014/08/03 职场文书
2015关于重阳节的演讲稿
2015/03/20 职场文书
党员理论学习心得体会
2016/01/21 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
Python中字符串对象语法分享
2022/02/24 Python