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

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

描述

根据分库键的键值(键值必须是整数)有符号地向右移二进制指定的位数(位数可通过DDL指定),然后将得到的整数值按分库(表)数目取余。

使用限制

拆分键的类型必须整数类型。

使用场景

当拆分键大部分键值的低位部分区分度比较低而高位部分区分度比较高时,则适用于通过此拆分函数提高散列结果的均匀度。

例如有4个拆分键的键值,分别为0x0100、0x0200、0x0300和0x0400, 这4个值的第8位部分都是0。通常一些业务后N位可能只是一些业务上的标志位,如果直接对键值进行取余散列,其散列效果可能会比较差。但如果通过RIGHT_SHIFT(shardKey, 8)将拆分键的值进行二进制右移8位,则分别变成了0x01、0x02、0x03和0x04,这样的散列效果就会比较均匀(若分4个库,刚好可以每个值对应一个分库)。

使用示例

假设需要将ID作为拆分键,并将ID的值向右移二进制4位的值作为哈希值,则可以如下建表:


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 RIGHT_SHIFT(id, 8) 
tbpartition by RIGHT_SHIFT(id, 8) tbpartitions 4;
相关文章
|
存储 文件存储 数据安全/隐私保护
文件管理介绍
文件管理是操作系统中的一个重要组成部分,它负责管理计算机系统中的文件和文件系统的组织结构。文件是存储在存储介质上的一组相关数据,可以是文本文件、图像文件、音频文件、视频文件等。文件管理的目标是有效地组织、存储、检索和保护文件,提供方便的文件操作和共享功能。 文件管理的主要功能包括文件存储和文件操作两个方面: 1. 文件存储: - 文件组织结构:文件系统采用一种层次化的组织结构,常见的有层次目录结构、索引结构和扁平文件结构等。层次目录结构是最常见的文件组织方式,通过目录和子目录的层次关系来组织文件。索引结构是利用索引表来存储文件的位置和属性信息,可以提高文件的访问速度。扁平文件结构是将
728 1
|
开发框架 前端开发 JavaScript
常见的移动应用开发框架有哪些?
跨平台移动开发框架概览:React Native用JavaScript构建UI;Google的Flutter打造原生体验;Ionic结合Angular与Cordova;Xamarin用C#开发iOS和Android;Apple的SwiftUI专注iOS和macOS界面;Android Jetpack提供官方工具集;Kotlin Multiplatform实现多平台共享;NativeScript用JavaScript做原生应用;Cocos2d-x则用于2D游戏开发。选择框架需考虑项目需求、平台、技术栈和团队经验。
820 3
|
机器学习/深度学习 算法 Python
【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立及参考文献
本文提供了2023年华数杯全国大学生数学建模竞赛A题的详细分析、数学模型建立及参考文献,聚焦于隔热材料的结构优化控制研究,旨在解决单根隔热材料纤维的热导率测量难题,并探讨如何通过优化织物编织结构来提升隔热性能。
205 0
【2023 华数杯全国大学生数学建模竞赛】 A题 隔热材料的结构优化控制研究 问题分析、模型建立及参考文献
|
机器学习/深度学习 搜索推荐 知识图谱
图神经网络加持,突破传统推荐系统局限!北大港大联合提出SelfGNN:有效降低信息过载与数据噪声影响
【7月更文挑战第22天】北大港大联手打造SelfGNN,一种结合图神经网络与自监督学习的推荐系统,专攻信息过载及数据噪声难题。SelfGNN通过短期图捕获实时用户兴趣,利用自增强学习提升模型鲁棒性,实现多时间尺度动态行为建模,大幅优化推荐准确度与时效性。经四大真实数据集测试,SelfGNN在准确性和抗噪能力上超越现有模型。尽管如此,高计算复杂度及对图构建质量的依赖仍是待克服挑战。[详细论文](https://arxiv.org/abs/2405.20878)。
361 5
|
Linux UED iOS开发
Python colorama 设置控制台、命令行输出彩色文字
Python colorama 设置控制台、命令行输出彩色文字
243 0
|
JavaScript 小程序 API
uniapp的实战总结大全
uniapp的实战总结大全
365 0
|
监控 关系型数据库 MySQL
C#程序发布时,一定要好好地保护,不然你会后悔的
C#程序发布时,一定要好好地保护,不然你会后悔的
343 0
|
大数据 关系型数据库 数据处理
传统数仓和大数据数仓的区别是什么?
传统数仓和大数据数仓的区别是什么?
|
监控 物联网 开发者
NB-IoT 连接移动 OneNet 云平台产品及设备添加 | 学习笔记
快速学习 NB-IoT 连接移动 OneNet 云平台产品及设备添加
NB-IoT 连接移动 OneNet 云平台产品及设备添加 | 学习笔记