mysql怎么去掉hash分区

常规HASH和线性HASH的增加收缩分区的原理是一样的。增加和收缩分区后原来的数据会根据现有的分区数量重新分布。HASH分区不能删除分区,所以不能使用DROP PARTITION操作进行分区删除操作;只能通过ALTER TABLE ... COALESCE PARTITION num来合并分区,这里的num是减去的分区数量;可以通过ALTER TABLE ... ADD ...
mysql怎么去掉hash分区
分区管理
常规HASH和线性HASH的增加收缩分区的原理是一样的。增加和收缩分区后原来的数据会根据现有的分区数量重新分布。HASH分区不能删除分区,所以不能使用DROP PARTITION操作进行分区删除操作;
只能通过ALTER TABLE ... COALESCE PARTITION num来合并分区,这里的num是减去的分区数量;
可以通过ALTER TABLE ... ADD PARTITION PARTITIONS num来增加分区,这里是null是在原先基础上再增加的分区数量。
1.合并分区
减去3个分区
ALTER TABLE tblinhash COALESCE PARTITION 3;
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='tblinhash';

注意:减去两个分区后,数据根据现有的分区进行了重新的分布,以'2003-04-14'为例:POWER(2, CEILING( LOG(2,3) ))=4,2003&(4-1)=3,3>=3,3&(CEILING(3/2)-1)=1,所以现在的'2003-04-14'这条记录由原来的p3变成了p1

2.增加分区
增加4个分区
ALTER TABLE tblinhash add PARTITION partitions 4;
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='tblinhash';

当在3个分区的基础上增加4个分区后,‘2003-04-14’由原来的p1变成了p3,而另一条记录由原来的p2变成了p62017-07-28
mengvlog 阅读 207 次 更新于 2025-09-09 10:00:18 我来答关注问题0
  •  翡希信息咨询 MySQL进阶实战8,分区表详解

    删除记录时,分区层确定数据对应的分区,然后对相应底层表进行删除操作。UPDATE:更新记录时,分区层先确定需要更新的记录在哪个分区,取出数据并进行更新,再判断更新后的数据应放在哪个分区,最后对底层表进行写入和删除操作。五、分区表的类型 MySQL支持多种分区表类型,分区表达式可以是列或包含列的表达式。

  •  翡希信息咨询 分区、分表、分库

    例如,按时间范围分区,可以将不同时间段的数据存储在不同的分区中。LIST分区:类似于RANGE分区,但每个分区必须明确定义。LIST分区是基于某列的值从属于一个值列表集中的一个值来进行分区的。HASH分区:基于用户定义的表达式的返回值来进行选择的分区。这个函数可以包含MySQL中有效的、产生非负整数值的任...

  •  翡希信息咨询 MySQL 分库分表与分区的区别和思考

    一、分区 1. 实现方式 MySQL分区是一种表级别的操作,它将一个逻辑上的表按照某种规则划分为多个物理上的子表。这些子表在逻辑上仍然是一个表,但在物理存储上是分开的。分区操作由MySQL内部实现,应用层无需进行任何修改。需要注意的是,如果表中存在主键或唯一索引,分区列必须是唯一索引的一个组成...

  •  校企律说法 mysql如何查看分区情况

    1、查看当前MySQL数据库是否支持分区;2、判断当前数据库版本是否安装了分区插件;3、创建数据库表并建立表分区,利用命令,结果发现报错;4、修改创建数据库表主键设置,将其去掉,再次运行命令;5、查看某张表是不是分区表;6、查看具体数据库下的某张表的分区情况;7、解决问题。

  •  翡希信息咨询 mysql如何查看分区情况

    使用命令 SELECT VERSION; 查看MySQL版本。大多数现代版本的MySQL默认支持分区,无需额外安装插件。但如果是较旧的版本或特殊定制版,可能需要确认是否安装了分区相关的插件。查看某张表是否为分区表:可以使用 SHOW CREATE TABLE 表名; 命令,查看表的创建语句中是否包含 PARTITION BY 子句。查看具体数据库...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部