1

次のように、データベースにパーティション分割されたテーブルがあります。

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
4

1 に答える 1

1

構文は次のとおりです。

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

また、パーティションを使用する場合も注意してください。月ごとに分割された売上テーブルのように、論理的な意味を持つ場合もあります。あなたの場合、それはかなり恣意的に見えます。今から 6 か月後にパーティションを完全に再設計することを決定でき、コードも変更する必要があります。

于 2013-08-05T10:22:39.550 に答える