innodb没法设置  另外oltp的应用分区表并没有任何优势

解决方案 »

  1.   

    示例
    CREATE TABLE ts (id INT, purchased DATE) 
         ENGINE=innodb 
         PARTITION BY RANGE(YEAR(purchased)) 
         SUBPARTITION BY HASH(id) 
         ( 
             PARTITION p0 VALUES LESS THAN (1990) 
             ( 
                 SUBPARTITION s0                  //在大的分区下又有小的分区
                 DATA DIRECTORY='/usr/local/mysql/data0'      //数据源
                 INDEX DIRECTORY='/usr/local/mysql/index0',   //索引数据源
                 SUBPARTITION s1 
                 DATA DIRECTORY='/usr/local/mysql/data1' 
                 INDEX DIRECTORY='/usr/local/mysql/index1' 
             ), 
             PARTITION p1 VALUES LESS THAN (MAXVALUE) 
             ( 
                 SUBPARTITION s2 
                 DATA DIRECTORY='/usr/local/mysql/data1' 
                 INDEX DIRECTORY='/usr/local/mysql/index1', 
                 SUBPARTITION s3 
                 DATA DIRECTORY='/usr/local/mysql/data2' 
                 INDEX DIRECTORY='/usr/local/mysql/index2' 
             ) 
         ); 
      

  2.   


    我就只对id进行key分区呢?怎么设置分区数据存放位置?
      

  3.   

    CREATE TABLE tb_frequency
    (
    uid VARCHAR(10) NOT NULL,
    frequency VARCHAR(200),
    UNIQUE KEY IDX_UID(uid)
    )
    PARTITION BY KEY(uid)
    (
    PARTITION p0 DATA DIRECTORY='/diskb/data'
    INDEX DIRECTORY='/diskb/idx', PARTITION p1 DATA DIRECTORY='/diskc/data'
    INDEX DIRECTORY='/diskc/idx', PARTITION p2 DATA DIRECTORY='/diskd/data'
    INDEX DIRECTORY='/diskd/idx', PARTITION p3 DATA DIRECTORY='/diske/data'
    INDEX DIRECTORY='/diske/idx'
    )
    PARTITIONS 4;
    这样搞不行。