MySQL分区表创建与DATA DIRECTORY不移动表

时间:2014-08-27 16:06:56

标签: mysql database-partitioning

我正在尝试跨越多个磁盘划分一个非常大的(100M行)表,以获得空间并提高吞吐量。我安装,格式化并将两个1TB SAS磁盘作为/ db1和/ db2安装到我的Dell Poweredge服务器中以保存表。我的create语句是(为简洁省略一些行):

DROP TABLE IF EXISTS allreads;
CREATE TABLE allreads (
  uuid int(11) NOT NULL AUTO_INCREMENT,
  sample_id int(11) NOT NULL,
  uid int(11) NOT NULL,
  rid char(100) NOT NULL,
  seq text(1000) NOT NULL DEFAULT '',
  v char(30) NOT NULL DEFAULT '',
  d char(30) NOT NULL DEFAULT '',
  j char(30) NOT NULL DEFAULT '',
  c char(30) NOT NULL DEFAULT '',
  pep char(100) NOT NULL DEFAULT '',
  PRIMARY KEY (uuid,sample_id),
  KEY index_v (v),
  KEY index_j (j),
  KEY index_cdr3 (pep)
) ENGINE=InnoDB
  AUTO_INCREMENT=1
  DEFAULT CHARSET=utf8
  PARTITION BY RANGE(sample_id)
  SUBPARTITION BY HASH(uuid)  (
      PARTITION p0 VALUES LESS THAN (4500) (
          SUBPARTITION p0a
              DATA DIRECTORY='/db1/allreads'
              INDEX DIRECTORY='/db1/allreads',
          SUBPARTITION pob
              DATA DIRECTORY='/db1/allreads'
              INDEX DIRECTORY='/db1/allreads'
      ),
      PARTITION P1 VALUES LESS THAN (9000) (
          SUBPARTITION p1a
              DATA DIRECTORY='/db2/allreads'
              INDEX DIRECTORY='/db2/allreads',
          SUBPARTITION p1b
              DATA DIRECTORY='/db2/allreads'
              INDEX DIRECTORY='/db2/allreads'
     )
  )
;

我几乎逐字地从MySQL 5.5手册中获取了分区位。

在/ db1或/ db2中没有创建任何内容,分区会在默认表空间中结束

sudo ls -l /data/mysql/cdr3/
total 13530388
-rw-rw---- 1 mysql mysql      13654 Aug 27 10:24 allreads.frm
-rw-rw---- 1 mysql mysql         60 Aug 27 10:24 allreads.par
-rw-rw---- 1 mysql mysql     147456 Aug 27 10:24 allreads#P#p0#SP#p0a.ibd
-rw-rw---- 1 mysql mysql     147456 Aug 27 10:24 allreads#P#p0#SP#pob.ibd
-rw-rw---- 1 mysql mysql  503316480 Aug 27 10:41 allreads#P#P1#SP#p1a.ibd
-rw-rw---- 1 mysql mysql  503316480 Aug 27 10:41 allreads#P#P1#SP#p1b.ibd
-rw-rw---- 1 mysql mysql         65 Aug 14 13:05 db.opt

我看到分区名称中的拼写错误,P1和pob,肯定不会是它。如果需要,我可以提供my.cnf行。

我看不出与手册相关的陈述有什么问题。谁能告诉我我做错了什么?有没有人让这个功能起作用?

我正在使用5.5.38-0ubuntu0.14.04.1-log(Ubuntu)

1 个答案:

答案 0 :(得分:1)

版本5.5.38不支持InnoDB的DATA DIRECTORY语句。将新磁盘重新格式化为RAID,因此问题没有实际意义。