PolarDB-X 1.0-SQL 手册-拆分函数使用说明-拆分函数概述

简介: PolarDB-X是一个支持既分库又分表的数据库服务。本文将介绍PolarDB-X拆分函数的相关信息。

PolarDB-X是一个支持既分库又分表的数据库服务。本文将介绍PolarDB-X拆分函数的相关信息。

拆分方式

PolarDB-X中,一张逻辑表的拆分方式由拆分函数(包括分片数目与路由算法)与拆分键(包括拆分键的 MySQL 数据类型)共同定义。只有当PolarDB-X使用了相同的拆分函数和拆分键时,才会被认为分库与分表使用了相同的拆分方式。相同的拆分方式让PolarDB-X可以根据拆分键的值定位到唯一的物理分库和物理分表。当一张逻辑表的分库拆分方式与分表拆分方式不一致时,若SQL查询没有同时带上分库条件与分表条件,则PolarDB-X在查询过程会进行全分库扫描或全分表扫描操作。

拆分函数对分库、分表的支持情况

拆分函数 说明 是否支持用于分库 是否支持用于分表
HASH 简单取模
STR_HASH 截取字符串子串
UNI_HASH 简单取模
RIGHT_SHIFT 数值向右移
RANGE_HASH 双拆分列哈希
MM 按月份哈希
DD 按日期哈希
WEEK 按周哈希
MMDD 按月日哈希
YYYYMM 按年月哈希
YYYYWEEK 按年周哈希
YYYYDD 按年日哈希

拆分函数对全局二级索引的支持情况

  • PolarDB-X支持全局二级索引,从数据存储的角度看,每个GSI对应一张用于保存索引数据的逻辑表,称为索引表。
  • PolarDB-X还支持创建GSI时指定索引表的拆分方式,并且对拆分函数的支持范围与普通逻辑表相同,创建GSI的详细语法,请参见使用全局二级索引

拆分函数对数据类型支持情况

拆分函数 数据类型
INT BIGINT MEDIUMINT SMALLINT TINYINT VARCHAR CHAR DATE DATETIME TIMESTAMP 其他类型
HASH × × × ×
UNI_HASH × × × ×
RANGE_HASH × × × ×
RIGHT_SHIFT × × × × × ×
STR_HASH × × × × × × × × ×
MM × × × × × × × ×
DD × × × × × × × ×
WEEK × × × × × × × ×
MMDD × × × × × × × ×
YYYYMM × × × × × × × ×
YYYYWEEK × × × × × × × ×
YYYYDD × × × × × × × ×

拆分函数的语法说明

PolarDB-X兼容MySQL的DDL表操作语法,并添加了drds_partition_options的分库分表关键字,具体操作语法如下所示:


CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    (create_definition,...)
    [table_options]
    [drds_partition_options]
    [partition_options]
CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name
    [(create_definition,...)]
    [table_options]
    [drds_partition_options]
    [partition_options]
    select_statement
drds_partition_options:
    DBPARTITION BY
        { {HASH|YYYYMM|YYYYWEEK|YYYYDD|...}([column])}
        [TBPARTITION BY
            { {HASH|MM|DD|WEEK|MMDD|YYYYMM|YYYYWEEK|YYYYDD|...}(column)}
          [TBPARTITIONS num]
        ]
相关文章
|
11月前
|
SQL 数据可视化 关系型数据库
MCP与PolarDB集成技术分析:降低SQL门槛与简化数据可视化流程的机制解析
阿里云PolarDB与MCP协议融合,打造“自然语言即分析”的新范式。通过云原生数据库与标准化AI接口协同,实现零代码、分钟级从数据到可视化洞察,打破技术壁垒,提升分析效率99%,推动企业数据能力普惠化。
892 3
|
SQL 人工智能 数据挖掘
如何在`score`表中正确使用`COUNT`和`AVG`函数?SQL聚合函数COUNT与AVG使用指南
本文三桥君通过score表实例解析SQL聚合函数COUNT和AVG的常见用法。详解COUNT(studentNo)、COUNT(score)、COUNT()的区别,以及AVG函数对数值/字符型字段的不同处理,特别指出AVG()是无效语法。实战部分提供6个典型查询案例及结果,包含创建表、插入数据的完整SQL代码。产品专家三桥君强调正确理解函数特性(如空值处理、字段类型限制)对数据分析的重要性,帮助开发者避免常见误区,提升查询效率。
599 0
|
SQL 关系型数据库 分布式数据库
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
利用 PolarDB PG 版向量化引擎,加速复杂 SQL 查询!完成任务领发财新年抱枕!
509 14
|
SQL 数据库 数据库管理
数据库SQL函数应用技巧与方法
在数据库管理中,SQL函数是处理和分析数据的强大工具
|
SQL Oracle 关系型数据库
SQL优化-使用联合索引和函数索引
在一次例行巡检中,发现一条使用 `to_char` 函数将日期转换为字符串的 SQL 语句 CPU 利用率很高。为了优化该语句,首先分析了 where 条件中各列的选择性,并创建了不同类型的索引,包括普通索引、函数索引和虚拟列索引。通过对比不同索引的执行计划,最终确定了使用复合索引(包含函数表达式)能够显著降低查询成本,提高执行效率。
453 3
|
SQL 数据库 索引
SQL中COUNT函数结合条件使用的技巧与方法
在SQL查询中,COUNT函数是一个非常常用的聚合函数,用于计算表中满足特定条件的记录数
3186 5
|
SQL 关系型数据库 C语言
PostgreSQL SQL扩展 ---- C语言函数(三)
可以用C(或者与C兼容,比如C++)语言编写用户自定义函数(User-defined functions)。这些函数被编译到动态可加载目标文件(也称为共享库)中并被守护进程加载到服务中。“C语言函数”与“内部函数”的区别就在于动态加载这个特性,二者的实际编码约定本质上是相同的(因此,标准的内部函数库为用户自定义C语言函数提供了丰富的示例代码)
|
SQL Oracle 关系型数据库
SQL 中的大小写处理函数详解
【8月更文挑战第31天】
1170 1
|
SQL 数据挖掘
|
SQL 数据处理 数据库
SQL中的函数有哪些类型
【8月更文挑战第20天】SQL中的函数有哪些类型
561 1

热门文章

最新文章

相关产品

  • 云原生分布式数据库 PolarDB-X