MySQL分区之KEY分区详解

作者:pursuer.chen 时间:2024-01-26 16:24:54 

介绍

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不一样,后者会连同数据一起删除

分区系列文章:

RANGE分区:https://www.jb51.net/article/244269.htm

COLUMN分区:https://www.jb51.net/article/96515.htm

LIST分区:https://www.jb51.net/article/244256.htm

HASH分区:https://www.jb51.net/article/244277.htm

KEY分区:https://www.jb51.net/article/244282.htm

子分区:https://www.jb51.net/article/244294.htm

指定各分区路径:https://www.jb51.net/article/244296.htm

分区索引以及分区介绍总结:https://www.jb51.net/article/244300.htm

来源:https://www.cnblogs.com/chenmh/p/5647210.html

标签:mysql,key,分区
0
投稿

猜你喜欢

  • 神经网络理论基础及Python实现详解

    2023-04-01 20:48:23
  • Python绘制股票移动均线的实例

    2023-07-15 10:31:06
  • 面向新手解析python Beautiful Soup基本用法

    2023-11-06 22:29:50
  • Python中函数的参数定义和可变参数用法实例分析

    2023-10-04 00:26:30
  • JavaScript 判断浏览器类型及版本

    2024-05-13 10:36:39
  • 如何把IP表存到SQL数据库里去?

    2009-11-02 20:21:00
  • JavaScript禁止右击保存图片,禁止拖拽图片的实现代码

    2024-05-11 09:07:16
  • 解决python3中os.popen()出错的问题

    2022-07-20 23:38:48
  • django数据库迁移migration实现

    2024-01-12 19:29:43
  • VSCode开发必备插件推荐(墙裂推荐!)

    2022-06-21 14:09:16
  • matplotlib绘制鼠标的十字光标的实现(自定义方式,官方实例)

    2021-06-09 02:33:06
  • SQL中exists的使用方法

    2011-12-01 08:36:07
  • php 模拟get_headers函数的代码示例

    2023-09-09 06:16:36
  • 如何使用Oracle PL/SQL 实现发送电子邮件功能(UTL_MAIL)

    2024-01-17 19:32:18
  • Ie6不支持max的解决办法

    2008-12-31 13:11:00
  • python将字符串转换成json的方法小结

    2023-11-17 23:58:57
  • HTML和CSS中的视觉语义

    2010-07-09 13:08:00
  • Windows平台Python连接sqlite3数据库的方法分析

    2024-01-25 14:04:28
  • SQLServer 跨库查询实现方法

    2012-04-13 12:07:09
  • python matplotlib 绘图 和 dpi对应关系详解

    2023-12-11 18:13:43
  • asp之家 网络编程 m.aspxhome.com