MySQL論壇上有一個問題,對如何計算每個分區的行。
我想通它將使一個良好的博客文章。
首先,這些分區審查和至少讓你開始有一些很好的鏈接。 這些網頁使用的例子在這裡參考的例子開始。
- http://dev.mysql.com/doc/refman/5.6/en/partitioning.html
- http://dev.mysql.com/tech-resources/articles/mysql_55_partitioning.html
> CREATE TABLE t2
-> (
-> dt DATE
-> )
-> PARTITION BY RANGE (TO_DAYS(dt))
-> (
-> PARTITION p01 VALUES LESS THAN (TO_DAYS('2007-01-01')),
-> PARTITION p02 VALUES LESS THAN (TO_DAYS('2008-01-01')),
-> PARTITION p03 VALUES LESS THAN (TO_DAYS('2009-01-01')),
-> PARTITION p04 VALUES LESS THAN (MAXVALUE));
> desc t2;
+-------+------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+------+------+-----+---------+-------+
| dt | date | YES | | NULL | |
+-------+------+------+-----+---------+-------+
INSERT INTO t2 VALUES ('2007-02-02'),('2008-02-02'),('2009-02-02'),(CURDATE());
Query OK, 4 rows affected (0.04 sec)
OK所以現在我們可以選擇從分區以及指望從他們..
> select count(*) from t2;
+----------+
| count(*) |
+----------+
| 4 |
+----------+
> explain partitions select count(*) from t2 \G
*************************** 1. row ***************************
id: 1
select_type: SIMPLE
table: t2
partitions: p01,p02,p03,p04
type: ALL
possible_keys: NULL
key: NULL
key_len: NULL
ref: NULL
rows: 5
Extra: NULL
>選擇* T2分區(P02);
+ ------------ +
DT |
+ ------------ +
| 2007-02-02 |
+ ------------ +
>選擇* T2分區(P04);
+ ------------ +
DT |
+ ------------ +
| 2009-02-02 |
2013年5月15日| |
+ ------------ +
> SELECT * FROM T2分區(P02,P04);
+ ------------ +
DT |
+ ------------ +
| 2007-02-02 |
| 2009-02-02 |
2013年5月15日| |
+ ------------ +
> SELECT COUNT(*)從t2的分區(P04);
+ ---------- +
| COUNT(*)|
+ ---------- +
| 2 |
+ ---------- +
希望這會有所幫助。