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 22 MySQL
详解MySQL中的主键与事务
May 27 MySQL
MySQL 常见存储引擎的优劣
Jun 02 MySQL
MySQL8.0.18配置多主一从
Jun 21 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
MySQL一些常用高级SQL语句
Jul 03 MySQL
MySQL面试题讲解之如何设置Hash索引
Nov 01 MySQL
MySQL数据库中varchar类型的数字比较大小的方法
Nov 17 MySQL
mysql中整数数据类型tinyint详解
Dec 06 MySQL
MySQL如何快速创建800w条测试数据表
Mar 17 MySQL
MySQL提取JSON字段数据实现查询
Apr 22 MySQL
MySQL约束(创建表时的各种条件说明)
Jun 21 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
不用GD库生成当前时间的PNG格式图象的程序
2006/10/09 PHP
PHP5函数小全(分享)
2013/06/06 PHP
easyui的tabs update正确用法分享
2014/03/21 PHP
PHP函数nl2br()与自定义函数nl2p()换行用法分析
2016/04/02 PHP
PHP串行化与反串行化实例分析
2016/12/27 PHP
静态页面下用javascript操作ACCESS数据库(读增改删)的代码
2007/05/14 Javascript
基于Jquery的跨域传输数据(JSONP)
2011/03/10 Javascript
jquery 与NVelocity 产生冲突的解决方法
2011/06/13 Javascript
js原型链原理看图说明
2012/07/07 Javascript
使用 stylelint检查CSS_StyleLint
2016/04/28 Javascript
JS实现兼容火狐及IE iframe onload属性的遮罩层隐藏及显示效果
2016/08/23 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
使用Fullpage插件快速开发整屏翻页的页面
2017/09/13 Javascript
基于vue.js中事件修饰符.self的用法(详解)
2018/02/23 Javascript
js传递数组参数到后台controller的方法
2018/03/29 Javascript
详解vue-cli3多环境打包配置
2019/03/28 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
Python利用多进程将大量数据放入有限内存的教程
2015/04/01 Python
Python使用SocketServer模块编写基本服务器程序的教程
2016/07/12 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
浅谈python日志的配置文件路径问题
2018/04/28 Python
python实现列表的排序方法分享
2019/07/01 Python
python 爬取疫情数据的源码
2020/02/09 Python
基于python实现对文件进行切分行
2020/04/26 Python
什么是python的id函数
2020/06/11 Python
使用keras实现Precise, Recall, F1-socre方式
2020/06/15 Python
实例讲解HTML5的meta标签的一些应用
2015/12/08 HTML / CSS
如何在Canvas上的图形/图像绑定事件监听的实现
2020/09/16 HTML / CSS
德国家具、照明、家居用品网上商店:Wayfair.de
2020/02/13 全球购物
个人自我鉴定
2013/11/07 职场文书
办公室副主任职责范本
2014/03/08 职场文书
工作经历证明书范文
2014/11/02 职场文书
大学生个人学年总结
2015/02/15 职场文书
如何使用php生成zip压缩包
2021/04/21 PHP
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
Mysql数据库事务的脏读幻读及不可重复读详解
2022/05/30 MySQL