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

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

描述

根据分库键时间值的年份与一年的周数计算哈希值,然后再按分库数进行取余。

例如,YYYYWEEK('2012-12-31 12:12:12')等价于按照(2013x54+1)%D(D是分库数目)公式计算出2012-12-31是2013年的第1周。

使用限制

  • 拆分键的类型必须是DATE、DATETIME或TIMESTAMP中的一种。
  • 使用YYYYWEEK函数前,需要先确定所需的总物理分表数,您可以通过确定循环周期(如2年)来确定总的物理分表数。因为YYYYWEEK函数仅支持为循环周期内的每一周创建一张独立分表。
  • 当周数经过一个循环周期后(如2012年第1周经过一个2年的循环周期后是2014年第1周),相同周数有可能被路由到同一个分库分表,具体被分到哪个分表受实际的分表数目影响。

使用场景

YYYYWEEK函数适用于需要按年份与一年的周数进行分库的场景。建议结合该函数与tbpartition by YYYYWEEK(ShardKey)命令一起使用。

使用示例

假设PolarDB-X里已经拥有8个物理库,现有如下需求:

  • 按年周进行分库。
  • 同一周的数据都能落在同一张分表,且两年以内的每一周都能单独对应一张分表。
  • 查询时带上分库分表键后能直接将查询落在某个物理分库的某个物理分表。

YYYYWEEK分库函数即可满足上述要求。上述需求中提到两年以内的每一周都需对应一张分表(即一周一张表),由于一年最多有53周,所以需要创建106(53x2=106)张物理分表才能满足上述需求。PolarDB-X已有8个分库,所以每个分库应该建14张物理分表(106/8=13.25,取整为14,分表数最好是分库数的整数倍)。

则您可以使用如下建表DDL:


create table test_yyyyweek_tb (    
    id int, 
    name varchar(30) DEFAULT NULL,  
    create_time datetime DEFAULT NULL,
    primary key(id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 
dbpartition by YYYYWEEK(create_time) 
tbpartition by YYYYWEEK(create_time) tbpartitions 14;
相关文章
|
11月前
|
数据格式 Python
如何处理用户输入数据格式验证不通过的情况?
如何处理用户输入数据格式验证不通过的情况?
477 79
|
11月前
|
人工智能 搜索推荐 前端开发
打造个性化跨年时钟:整点报时与祝福语、背景音乐播放的完美结合
这款跨年时钟应用程序为2025新年特别设计,基于Python和Tkinter库开发。它不仅实时显示当前时间,还根据时间段自动调整背景颜色(白天白色、夜晚紫色),并在特定时间播放报时和祝福语音。指针颜色每隔6到15秒随机变化,增加趣味性。元旦前三秒显示“元旦快乐”并播放AI生成的祝福语音。窗口始终置顶,方便查看。此外,整点和半点时播放报时声音,背景音乐在指定时间启动,带来个性化体验。 代码实现包括环境准备、时区设置、动态背景和指针绘制、声音播放及主窗口创建等功能模块。通过多线程技术确保流畅运行。希望这款时钟能为新年增添温馨与惊喜。 欢迎点赞、关注、转发、收藏!
315 44
|
11月前
|
Java Linux 数据库
java连接kerberos用户认证
java连接kerberos用户认证
338 22
|
11月前
|
监控 安全 大数据
无人机场航站楼解决方案
本系统由旅客服务云平台、消费数据云平台、行李数据云平台、监控云平台、机器人服务云平台、登机手续服务云平台、反恐与警务大数据指挥平台、应急指挥大数据平台、安检大数据云平台、容灾备份系统、环境监测系统及登机云平台等组成。各平台通过数据交互,实现旅客服务、安全检查、值机办理、行李管理、应急指挥等功能,确保机场运营高效、安全。特别是反恐、逃犯抓捕和超能力者管理等功能,通过多源数据融合与智能分析,提供全方位的安全保障。登机云平台则负责处理旅客登机流程中的各项数据,确保旅客顺利登机。
|
11月前
|
传感器 机器学习/深度学习 人工智能
智能电网巡检与传感器数据AI自动分析
智能电网设备巡检与传感器数据分析利用AI技术实现自动化分析和预警。通过信息抽取、OCR技术和机器学习,系统可高效处理巡检报告和实时数据,生成精准报告并提供故障预判和早期识别。AI系统24小时监控设备状态,实时发出异常警报,确保设备正常运行,提升运维效率和可靠性。
596 6
|
11月前
|
数据采集 存储 JavaScript
jsdom爬虫程序中eBay主页内容爬取的异步处理
jsdom爬虫程序中eBay主页内容爬取的异步处理
|
11月前
|
机器学习/深度学习 人工智能 算法
昇腾AI行业案例(一):基于AI图像处理的疲劳驾驶检测
在本实验中,您将学习如何使用利用CV(Computer Vision)领域的AI模型来构建一个端到端的疲劳驾驶检测系统,并使用开源数据集进行效果验证。为此,我们将使用昇腾的AI硬件以及CANN等软件产品。
515 3
|
机器学习/深度学习 传感器 监控
深度学习在图像识别中的突破与应用
随着人工智能的飞速发展,深度学习已经成为推动图像识别技术进步的核心动力。本文旨在探讨深度学习在图像识别领域的最新突破及其广泛应用,通过分析卷积神经网络(CNN)等关键技术的发展,揭示深度学习如何革新传统图像处理方式,提升识别精度和效率。文章还将概述当前面临的挑战与未来发展趋势,为读者提供一个全面而深入的技术视角。
|
人工智能 安全
太空垃圾清理技术:保障轨道安全的必要措施
【10月更文挑战第8天】太空垃圾清理是保障轨道安全的必要措施。通过发展多种清理技术,提高清理效率,降低清理成本,可以有效缓解太空垃圾问题对太空活动的影响。同时,加强国际合作,共同制定太空垃圾清理的标准和规范,也是未来太空垃圾清理工作的重要方向。太空是全人类的共同财产,保护太空环境需要各个国家之间共同努力与合作。
|
人工智能
最近很火的人工智能ChatGPT可以实现“ 连续对话”机制
这篇文章介绍了人工智能ChatGPT实现连续对话机制的方法,包括如何通过传递特定的参数如conversation_id来保持对话的连续性。
最近很火的人工智能ChatGPT可以实现“ 连续对话”机制