zoukankan      html  css  js  c++  java
  • 腾讯云TDSQL MySQL版

    TDSQL MySQL版 目前支持 Range 和 List 两种格式的二级分区,具体建表语法和 MySQL 分区语法类似。

    二级分区语法
    一级 Hash,二级 List 分区示例如下:

    MySQL [test]> CREATE TABLE customers_1 (
    first_name VARCHAR(25) key,
    last_name VARCHAR(25),
    street_1 VARCHAR(30),
    street_2 VARCHAR(30),
    city VARCHAR(15),
    renewal DATE
    ) shardkey=first_name
    PARTITION BY LIST (city) (
    PARTITION pRegion_1 VALUES IN('Beijing', 'Tianjin', 'Shanghai'),
    PARTITION pRegion_2 VALUES IN('Chongqing', 'Wulumuqi', 'Dalian'),
    PARTITION pRegion_3 VALUES IN('Suzhou', 'Hangzhou', 'Xiamen'),
    PARTITION pRegion_4 VALUES IN('Shenzhen', 'Guangzhou', 'Chengdu')
    );
    一级 Range,二级 List 创建语法如下:

    MySQL [test]> CREATE TABLE tb_sub_r_l (
    id int(11) NOT NULL,
    order_id bigint NOT NULL,
    PRIMARY KEY (id,order_id))
    PARTITION BY list(order_id)
    (PARTITION p0 VALUES in (2121122),
    PARTITION p1 VALUES in (38937383))
    TDSQL_DISTRIBUTED BY RANGE(id) (s1 values less than (100),s2 values less than (1000));
    Query OK, 0 rows affected, 1 warning (0.35 sec)
    Range 支持类型
    DATE,DATETIME,TIMESTAMP。
    支持 year,month,day 函数,函数为空和 day 函数一样。
    TINYINT, SMALLINT, MEDIUMINT, INT, BIGINT。
    支持 year,month,day 函数,此时传入的值转换为年月日,然后和分表信息进行对比。
    List 支持类型
    DATE,DATETIME,TIMESTAMP。
    支持年月日函数。
    TINYINT, SMALLINT, MEDIUMINT, INT , BIGINT。
    警告
    建议不要使用 TIMESTAMP 类型作为分区键,因为 TIMESTAMP 受到时区的影响,同时只能使用到2038年。
    如果分区键是 char 或者 varchar 类型,建议长度不超255。
    使用场景和方法建议
    建议业务尽量都使用一级分区表。

    使用前根据业务长期场景合理设计表结构,二级分区适用于表结构创建后长期都不需要 DDL 变更、需要定期进行分区数据清理和裁剪的场景,如日志流水表。
    合理设计二级分区的粒度,二级分区的粒度建议不要划分得太细,避免产生过多的二级子表。如流水表按月进行二级分区,而不是按天/小时进行分区,避免文件系统上数据文件个数过多。
    在对二级分区表进行 SQL 查询时,查询条件需要尽量带上一级分区和二级分区的键值,避免执行查询时需要打开很多的数据文件进行搜索。
    在对二级分区表进行 join 查询时,如果查询条件未能带上一级分区和二级分区的键值,操作性能效率较低,建议不要使用。
    表的主键或唯一索引需要包含分区键,否则无法保证数据唯一性。

  • 相关阅读:
    Python深拷贝和浅拷贝解析
    python中count函数的用法
    Jenkins + gitlab + maven 自动打包部署项目
    nio和bio得区别
    nginx负载均衡的5种策略
    接口测试常见bug
    接口自动化面试4
    pass 语句
    if 语句
    while循环
  • 原文地址:https://www.cnblogs.com/tencentdb/p/15163584.html
Copyright © 2011-2022 走看看