大佬教程收集整理的这篇文章主要介绍了使用 VARCHAR 字段按 HASH 分区,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在给定的表中,我尝试应用分区方案,其中使用的字段是 VARCHAR (23),类似于 GuID。
例如:5cb4932bfbca0c0010343e68
这个想法是使用哈希分区创建 4 个分区。为此,我相信您必须使用一些函数将字段转换为始终适合分区子句的值,我不知道这在 MysqL 中是否可行。
create table myTable (
ID char(36) NOT NulL,APIID varchar(23) NOT NulL,Classification int(11) NOT NulL,primary key (id)
)
PARTITION BY HASH(APIID)
PARTITIONS 4;
是的,您需要提供一个返回整数的散列函数。从HASH partitioning...
要使用 HASH 分区对表进行分区,需要在 create table 语句后附加一个 PARTITION BY HASH (expr) 子句,其中 expr 是一个返回整数的表达式。
最简单的解决方案是将您的 ID 存储为整数,并根据需要将其转换为十六进制字符串。这比存储 varchar 更快并且使用更少的内存。
不幸的是,您的 ID 也太大而无法放入 bigint。它大约是 92 位。相反,使用 varbinary(12)
(对于 128 位 UUID 使用 varbinary(16))。
然后您需要编写一个散列函数将该 varbinary 值转换为整数以进行散列。不幸的是,我不知道如何在 MySQL 中做到这一点。
以上是大佬教程为你收集整理的使用 VARCHAR 字段按 HASH 分区全部内容,希望文章能够帮你解决使用 VARCHAR 字段按 HASH 分区所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。