开发指南—函数—拆分函数—HASH

本文涉及的产品
云原生数据库 PolarDB 分布式版,标准版 2核8GB
简介: 本文将介绍HASH函数使用方式。

描述

  • 若分库和分表使用不同拆分键进行HASH时,则根据分库键的键值直接按分库数取余。如果键值是字符串,则字符串会先被换算成哈希值再进行路由计算。例如HASH(8)等价于8%D(D是分库数目), 而HASH("ABC")等价于hashcode("ABC").abs()%D(D是分库数目)。
  • 若分库和分表都使用同一个拆分键进行HASH时,则根据拆分键的键值按总的分表数取余。例如有2个分库,每个分库4张分表,那么0库上保存分表0~3,1库上保存分表4~7。某个键值为15,那么根据该路由方式,则该键值15将被分到1库的表7上((15 % (2 * 4) =7))。

注意事项

HASH函数要求拆分列的值的自身分布均衡才能保证哈希均衡。

使用限制

拆分键的数据类型必须是整数类型或字符串类型。

使用场景

HASH函数主要适用于如下场景:

  • 需要按用户ID或订单ID进行分库的场景;
  • 拆分键是字符串类型的场景。

示例

假设需要对ID列按HASH函数进行分库不分表,则您可以使用如下DDL语句进行建表:


create table test_hash_tb (
    id int,
    name varchar(30) DEFAULT NULL,  
    create_time datetime DEFAULT NULL,
    primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 dbpartition by HASH(ID);
相关实践学习
快速体验PolarDB开源数据库
本实验环境已内置PostgreSQL数据库以及PolarDB开源数据库:PolarDB PostgreSQL版和PolarDB分布式版,支持一键拉起使用,方便各位开发者学习使用。
相关文章
|
6月前
uni-app 4.5开发聊天列表组件(一)
uni-app 4.5开发聊天列表组件(一)
80 0
|
6月前
|
Android开发
Android 11 添加Service服务SELinux问题
Android 11 添加Service服务SELinux问题
321 1
|
6月前
|
人工智能 自然语言处理 算法
创企Sakana AI发布首个研究成果
Sakana AI,由前谷歌研究员创立,利用进化算法自动化创建强大的基础模型,革新大型语言模型开发。公司研发的日语数学LLM和文化意识VLM在基准测试中表现出色,其多智能体框架提升了视频生成效率和灵活性。尽管存在局限,如视频质量和数据集问题,但其开放框架对AI社区有重大贡献,推动技术发展。
105 4
创企Sakana AI发布首个研究成果
|
SQL 算法
开发指南—函数—拆分函数—UNI_HASH
本文将介绍UNI_HASH的使用方式。
开发指南—函数—拆分函数—UNI_HASH
|
机器学习/深度学习 算法 PyTorch
OpenCV-图像着色(采用DNN模块导入深度学习模型)
OpenCV-图像着色(采用DNN模块导入深度学习模型)
177 0
|
6月前
|
Java 编译器 iOS开发
8 种 Java 内存溢出之七 -Requested array size exceeds VM limit
8 种 Java 内存溢出之七 -Requested array size exceeds VM limit
开发指南—函数—拆分函数—HASH
本文将介绍HASH函数使用方式。
开发指南—函数—拆分函数—RANGE_HASH
本文将介绍RANGE_HASH函数的使用方式。
|
自然语言处理 算法 Python
RAKE(快速自动关键字抽取)算法原理与实现
RAKE算法用来做关键词(key word)的提取,实际上提取的是关键的短语(phrase),并且倾向于较长的短语,在英文中,关键词通常包括多个单词,但很少包含标点符号和停用词,例如and,the,of等,以及其他不包含语义信息的单词。
284 0
|
弹性计算 负载均衡 小程序
阿里云服务器免费体验3个月如何申请?
阿里云服务器免费体验3个月如何申请?阿里云服务器免费试用申请链接入口,阿里云个人用户和企业用户均可申请免费试用,最高可以免费使用3个月,阿里云服务器网分享阿里云服务器免费试用申请入口链接及云服务器配置
362 0