免费注册
帮助文档(华北一、二)
  • InDDB支持绝大部分MySQL语法和协议,包括类似SHOW DATABASES, SHOW TABLES, 以及各种DML语句包括SELECT,UPDATE,INSERT,DELETE等。

    垂直建表语法

    可以在创建水平分区表的同时创建普通表,普通表可以指定创建到某存储节点,如果不指定则默认创建到第一个节点(第一个节点的定义: 管理平台在初始化InDDB时,提交到中间件的存储节点的列表中,位置第一的节点,也是当时按字母序排第一的节点)。指定存储节点节点创建普通表的语法:

    CREATE TABLE `t2_common` (

      `id` int(11) NOT NULL,

      `price` int(11) NOT NULL,

      `name` varchar(64) DEFAULT NULL,

      `dt` varchar(32) DEFAULT NULL

    ) ENGINE=InnoDB DEFAULT CHARSET=latin1

    on udb node 'udbha-vh3jmr';

    水平建表语法

    UDDB支持三种水平划分方式:

    1hash

    2range

    3list

    hash/range/list 水平划分

    CREATE TABLE t1
    (uid  INT NOT NULL,
     dt DATE
    )
    UPARTITION BY HASH(uid) 
    UPARTITIONS 8;
    CREATE TABLE t2
    (uid INT NOT NULL ,
    price INT NOT NULL
    )
    UPARTITION BY RANGE(uid)
    (
    UPARTITION p1 VALUES LESS THAN (100000),
    UPARTITION p2 VALUES LESS THAN maxvalue
    );
    CREATE TABLE t3
    (id INT NOT NULL ,
    price int NOT NULL
    )
    UPARTITION BY RANGE(id)
    USUBPARTITION BY HASH(price)
    USUBPARTITIONS 4
    (
    UPARTITION p1 VALUES LESS THAN (100000),
    UPARTITION p2 VALUES LESS THAN maxvalue
    );
    CREATE TABLE t4
    (uid  INT NOT NULL ,
    price INT NOT NULL
    )
    UPARTITION BY LIST(price)
    (
    UPARTITION p1 VALUES IN  (1),
    UPARTITION p2 VALUES IN  (2),
    UPARTITION p3 VALUES IN  (3),
    UPARTITION p4 VALUES IN  (26)
    );
    CREATE TABLE t5
    (id INT NOT NULL ,
    price int NOT NULL
    )
    UPARTITION BY RANGE(id)
    USUBPARTITION BY HASH(price)
    USUBPARTITIONS 4
    (
    UPARTITION p1 VALUES LESS THAN (100000),
    UPARTITION p2 VALUES LESS THAN maxvalue
    );

    根据日期来做划分

    四个日期函数:

    day: 日期

    year: 年份

    month: 月份

    dayofweek: 星期几

    日期函数可以作为hash/range/list函数的参数,详情见下。

    CREATE TABLE t6
    (userid  INT NOT NULL ,
     dt DATE
    )
    UPARTITION BY HASH(MONTH(dt)) 
    UPARTITIONS 6;
    CREATE TABLE t7
    (userid  INT NOT NULL ,
     dt DATE
    )
    UPARTITION BY HASH(dayofweek(dt)) 
    UPARTITIONS 6;
    CREATE TABLE t8
    (id INT NOT NULL ,
    dt1 DATE NOT NULL,
    dt2 DATETIME NOT NULL
    )
    UPARTITION BY RANGE(day(dt1))
    USUBPARTITION BY HASH(year(dt2))
    USUBPARTITIONS 4
    (
    UPARTITION p1 VALUES LESS THAN (15),
    UPARTITION p2 VALUES LESS THAN maxvalue
    );
    CREATE TABLE t9
    (userid  INT NOT NULL ,
     usertype date NOT NULL
    )
    UPARTITION BY LIST(day(usertype))
    (
    UPARTITION p1 VALUES IN  (1),
    UPARTITION p2 VALUES IN  (2),
    UPARTITION p3 VALUES IN  (3),
    UPARTITION p4 VALUES IN  (26)
    );      

    两种日期类型: datedatetime均支持作为shardkey

     


文档是否已解决您的问题?

  已解决   未解决

如您有其它疑问,您也可以与我们技术专家联系探讨。

联系技术专家