免费注册
帮助文档(华北一、二)

  • 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';

    水平建表语法

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

    1、hash

    2、range

    3、list

    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) 
    );  
        

    两种日期类型: date、datetime均支持作为shardkey。


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

  已解决   未解决

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

联系技术专家