选择查询不适用于mysql中的分区表

时间:2013-08-05 09:16:28

标签: mysql

我的数据库中的分区表如下:

的MySQL> show create table drugs_info \ G;

Table: drugs_info
Create Table: CREATE TABLE `drugs_info` (
  `did` int(11) NOT NULL AUTO_INCREMENT,
  `brand_name` varchar(150) DEFAULT NULL,
  `generic` varchar(500) DEFAULT NULL,
  `tradename` varchar(150) DEFAULT NULL,
  `manfactured` varchar(100) DEFAULT NULL,
  `unit` varchar(300) DEFAULT NULL,
  `type` varchar(50) DEFAULT NULL,
  `quantity` varchar(50) DEFAULT NULL,
  `price` float DEFAULT NULL,
  PRIMARY KEY (`did`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 /*!50100 PARTITION BY RANGE (did) (PARTITION p0 VALUES LE
SS THAN (1000) ENGINE = InnoDB, PARTITION p1 VALUES LESS THAN (2000) ENGINE = InnoDB, PARTITION
p2 VALUES LESS THAN MAXVALUE ENGINE = InnoD

我为'partition po'写了一个选择查询,它显示错误的结果如下:

mysql> select count(*) from drugs_info p0;

count(*) 
----------
64378 

我在上面的选择查询中除了以下结果:

count(*)
---------
1000

1 个答案:

答案 0 :(得分:1)

语法为:

SELECT count(*) FROM drugs_info PARTITION (p0) ;

另外,使用分区时要小心。有时它们具有逻辑意义,如按月分区的销售表。在你的情况下,它看起来很随意;你可以决定在六个月后完全重新设计你的分区,你也必须改变你的代码。