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

简介: 本文将介绍RANGE_HASH函数的使用方式。

描述

根据任一拆分键后N位计算哈希值,然后再按分库数取余,完成路由计算。N为函数第三个参数。

例如,RANGE_HASH(COL1, COL2, N) ,计算时会优先选择COL1,截取其后N位进行计算。 COL1不存在时再选择COL2。

使用限制

  • 拆分键的类型必须是字符类型或数字类型,两个拆分键类型必须保持一致。
  • 两个拆分键皆不能修改。
  • 折分键暂时不支持做范围查询。
  • 插入数据时两个拆分键的后N位需确保一致。
  • 字符串长度需不少于N位。

使用场景

适用于需要有两个拆分键,并且查询时仅有其中一个拆分键值的场景。

使用示例

假设PolarDB-X里已经分了8个物理库,现在需要按买家ID和订单ID对订单表进行分库;查询时条件仅有买家ID或订单ID,那么您可以使用如下DDL语句构建订单表:


create table test_order_tb (  
    id int, 
    buyer_id varchar(30) DEFAULT NULL,  
    order_id varchar(30) DEFAULT NULL, 
    create_time datetime DEFAULT NULL,
    primary key(id)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8 
    dbpartition by RANGE_HASH(buyer_id,order_id, 10) 
    tbpartition by RANGE_HASH (buyer_id,order_id, 10) tbpartitions 3;


相关文章
|
数据采集 安全 Go
Go并发优化的9大技巧,效果立竿见影
Go并发优化的9大技巧,效果立竿见影
985 0
|
存储 缓存 Kubernetes
在K8S中,集群节点宕机,可能由哪些原因造成?
在K8S中,集群节点宕机,可能由哪些原因造成?
|
存储 Java Go
Go 语言切片如何扩容?(全面解析原理和过程)
Go 语言切片如何扩容?(全面解析原理和过程)
771 2
|
Go 调度
go基于信号的抢占式调度
go的调度器默认为抢占式调度。
373 0
|
缓存 Java Go
Go的GMP调度模型,看这篇就足够了
Go的GMP调度模型,看这篇就足够了
|
算法 Go 调度
goroutine源码分析,直击并发底层实现
goroutine源码分析,直击并发底层实现
203 0
|
存储 Go 索引
Go的slice扩容不是全部都按照1.25扩容的,还有内存对齐的概念,别再被忽悠了
Go的slice扩容不是全部都按照1.25扩容的,还有内存对齐的概念,别再被忽悠了
|
算法 安全 Java
[典藏版]Golang三色标记+混合写屏障GC模式全分析
从三色标记演进混合写屏障的GC模式全场景分析,主要介绍Golang自V1.3以来所采用的内存清理模式,分别具有标记清除、三色标记、写屏障机制,其中一些Golang的设计理念和垃圾回收理念是非常值得去借鉴和学习。本章节主要以推演的形式逐一介绍Golang垃圾回收的处理机制。
1426 0
[典藏版]Golang三色标记+混合写屏障GC模式全分析
|
Kubernetes 安全 关系型数据库
Helm入门(一篇就够了)
Helm快速入门
24730 0
|
Kubernetes 监控 Linux
NVIDIA GPU Operator分析三:NVIDIA Device Plugin安装
背景我们知道,如果在Kubernetes中支持GPU设备调度,需要做如下的工作:节点上安装nvidia驱动节点上安装nvidia-docker集群部署gpu device plugin,用于为调度到该节点的pod分配GPU设备。除此之外,如果你需要监控集群GPU资源使用情况,你可能还需要安装DCCM exporter结合Prometheus输出GPU资源监控信息。要安装和管理这么多的组件,对于运维
5794 1