mysql 5.5
CREATE TABLE PartitionTest1
  (
     pid                  INT NOT NULL AUTO_INCREMENT,
     pname                VARCHAR(100) NOT NULL,
     ptime                DATETIME NOT NULL,
     PRIMARY KEY (ptime, pid)
  )
  ENGINE = MYISAM
  PARTITION BY RANGE COLUMNS (ptime,pid)(
  PARTITION  PartitionTest_0 VALUES LESS THAN  ('2014-04-01',1),
  PARTITION  PartitionTest_1 VALUES LESS THAN ('2014-05-01',5)
  );

解决方案 »

  1.   

    一个全局索引idx(ptime, pid)
      

  2.   

    在分区字段上ptime, pid上建立索引,在查询时会用到此索引
      

  3.   


    通过执行查询索引的结果最准确show index from tableName
      

  4.   

    请问,像这样的用联合主键做主键的表如果要分区的话,是选其中的一个字段好些,还是用整个主键好些还是要分不同的情况,比如范围分区和hash分区就不同?
      

  5.   

    CREATE TABLE PartitionTest
    (
       pid                  INT NOT NULL AUTO_INCREMENT,
       pname                VARCHAR(100) NOT NULL,
       ptime                DATETIME NOT NULL,
       PRIMARY KEY (ptime, pid)
    )
    ENGINE = MYISAM
    PARTITION BY RANGE(ptime)(
    PARTITION p0 VALUES LESS THAN('2010'),
    PARTITION p1 VALUES LESS THEN maxvalue
    );
    如果是这样,也还是只有一个全局索引吗?
      

  6.   

    如果要分区的话,是选其中的一个字段好些,还是用整个主键好些根据你查询条件来判定,你只查询ptime?
      

  7.   

    ptime是主要的查询字段,pid其实没什么用,我的目的是为了ptime成为聚集索引因为mysql不支持主键与聚集索引分开建立,所以把ptime加到主键里来,保证ptime是聚集索引
      

  8.   

    请问一下,我的mysql有很多作业和存储过程,但是会报很多警告出来我都不知道警告是从哪里来的,请问我怎么在存储过程里抓取警告、错误信息啊