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查询的控制语句图文详解
Apr 11 MySQL
MySQL之高可用集群部署及故障切换实现
Apr 22 MySQL
浅谈Mysql多表连接查询的执行细节
Apr 24 MySQL
MySQL库表名大小写的选择
Jun 05 MySQL
Mysql 如何查询时间段交集
Jun 08 MySQL
MySQL系列之九 mysql查询缓存及索引
Jul 02 MySQL
为什么MySQL分页用limit会越来越慢
Jul 25 MySQL
MySQL数据库10秒内插入百万条数据的实现
Nov 01 MySQL
MySQL创建定时任务
Jan 22 MySQL
MySQL优化及索引解析
Mar 17 MySQL
MySQL分区表管理命令汇总
Mar 21 MySQL
SQL语句多表联合查询的方法示例
Apr 18 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 HTML代码串截取代码
2008/12/29 PHP
PHP中将数组转成XML格式的实现代码
2011/08/08 PHP
PHP Mysqli 常用代码集合
2016/11/12 PHP
Avengerls vs Newbee BO3 第一场2.18
2021/03/10 DOTA
javascript while语句和do while语句的区别分析
2007/12/08 Javascript
JavaScript中:表达式和语句的区别[译]
2012/09/17 Javascript
用表格输出1-1000之间的数字实现代码(附特效)
2013/04/21 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
Bootstrap每天必学之日期控制
2016/03/07 Javascript
详解Bootstrap插件
2016/04/25 Javascript
Google 地图控件集详解及实例代码
2016/08/06 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
使用Angular缓存父页面数据的方法
2017/01/03 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
Javascript Promise用法详解
2018/05/10 Javascript
JavaScript JMap类定义与使用方法示例
2019/01/22 Javascript
使用Webpack 搭建 Vue3 开发环境过程详解
2020/07/28 Javascript
Nodejs 微信小程序消息推送的实现
2021/01/20 NodeJs
python批量同步web服务器代码核心程序
2014/09/01 Python
python数据结构链表之单向链表(实例讲解)
2017/07/25 Python
Python输出带颜色的字符串实例
2017/10/10 Python
Python3 queue队列模块详细介绍
2018/01/05 Python
pandas or sql计算前后两行数据间的增值方法
2018/04/20 Python
详解django中使用定时任务的方法
2018/09/27 Python
在Mac下使用python实现简单的目录树展示方法
2018/11/01 Python
解决Django migrate不能发现app.models的表问题
2019/08/31 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
TensorFlow 输出checkpoint 中的变量名与变量值方式
2020/02/11 Python
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
中学教师培训制度
2014/01/31 职场文书
幼儿园教师奖惩制度
2014/02/01 职场文书
公司员工离职证明书
2014/10/04 职场文书
创先争优宣传标语
2014/10/08 职场文书
整改报告怎么写
2014/11/06 职场文书
古诗之爱国古诗5首
2019/09/20 职场文书