tencent cloud

文档反馈

columns 语法

最后更新时间:2024-10-09 10:37:29

    功能介绍

    columns 语法用于查询表的列信息。

    支持版本

    内核版本 TXSQL 8.0 3.1.15及以上。

    适用场景

    适用于查询表的列信息较多,需提高查询性能的场景。

    使用说明

    List columns 的语法

    columns 为单列
    CREATE TABLE `t1` (
    `id` int DEFAULT NULL,
    `purchased` varchar(12) DEFAULT NULL,
    KEY `idx` (`id`,`purchased`) GLOBAL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    PARTITION BY RANGE (`id`)
    SUBPARTITION BY LIST COLUMNS (`purchased`)
    SUBPARTITION TEMPLATE
    (SUBPARTITION s0 VALUES IN ('0', '1', '2') ENGINE = InnoDB,
    SUBPARTITION s1 VALUES IN ('5', '6', '8') ENGINE = InnoDB)
    (PARTITION p0 VALUES LESS THAN (1990) ,
    PARTITION p1 VALUES LESS THAN (1999));
    columns 为多列
    CREATE TABLE `t2` (
    `id` int DEFAULT NULL,
    `purchased` varchar(12) DEFAULT NULL,
    KEY `idx` (`id`,`purchased`) GLOBAL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    PARTITION BY RANGE (`id`)
    SUBPARTITION BY LIST COLUMNS (`purchased`, `id`)
    SUBPARTITION TEMPLATE
    (SUBPARTITION s0 VALUES IN (('0', 1), ('1', 1), ('2', 1995)) ENGINE = InnoDB,
    SUBPARTITION s1 VALUES IN (('5' ,5), ('6', 6)) ENGINE = InnoDB)
    (PARTITION p0 VALUES LESS THAN (1990) ,
    PARTITION p1 VALUES LESS THAN (1999));

    Range columns 的语法

    columns 为单列
    CREATE TABLE `t3` (
    `id` int DEFAULT NULL,
    `purchased` varchar(12) DEFAULT NULL,
    KEY `idx` (`id`,`purchased`) GLOBAL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    PARTITION BY RANGE (`id`)
    SUBPARTITION BY RANGE COLUMNS (`purchased`)
    SUBPARTITION TEMPLATE
    (SUBPARTITION s0 VALUES LESS THAN ('5') ENGINE = InnoDB,
    SUBPARTITION s1 VALUES LESS THAN ('8') ENGINE = InnoDB)
    (PARTITION p0 VALUES LESS THAN (1990) ,
    PARTITION p1 VALUES LESS THAN (1999));
    columns 为多列
    CREATE TABLE `t4` (
    `id` int DEFAULT NULL,
    `purchased` varchar(12) DEFAULT NULL,
    KEY `idx` (`id`,`purchased`) GLOBAL
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
    PARTITION BY RANGE (`id`)
    SUBPARTITION BY RANGE COLUMNS (`purchased`, `id`)
    SUBPARTITION TEMPLATE
    (SUBPARTITION s0 VALUES LESS THAN ('5', 55) ENGINE = InnoDB,
    SUBPARTITION s1 VALUES LESS THAN ('8', 88) ENGINE = InnoDB)
    (PARTITION p0 VALUES LESS THAN (1990) ,
    PARTITION p1 VALUES LESS THAN (1999));

    支持的 columns 数据类型

    支持的 columns 数据类型,请参见 官方文档

    裁剪说明

    二级分区的裁剪方式和一级分区裁剪是一致,并且是独立的。即一级裁剪过滤 where 条件中的 partition key part 获取裁剪后 partition 集合 s1,二级裁剪过滤 where 条件中的 subpartition key part 获取裁剪后 subpartition template 集合 s2,最终的结果是每个 s1 中的 s2 被选中。

    限制说明

    新增参数 txsql_subpartition_support_multiple_columns 限制多列的使用,关闭时只允许使用单列语法,打开时允许多列和单列语法。
    参数名
    动态
    类型
    默认
    参数值范围
    说明
    txsql_subpartition_support_multiple_columns
    yes
    bool
    OFF
    OFF/ON
    限制多列的使用,关闭时只允许使用单列语法,打开时允许多列和单列语法。
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持