0
我正在使用MySQL 5.6服務器。我創建了一個表,其中包含HASH partitiong,但是有些如何無法在我的查詢中使用特定分區。MySQL - 哈希分區不工作
表結構
CREATE TABLE `testtable` (
`id` INT(11) UNSIGNED NOT NULL AUTO_INCREMENT,
`purchased` DATE DEFAULT NULL,
KEY `ìd` (`id`),
KEY `Purchased` (`purchased`)
) ENGINE=INNODB
/*!50100 PARTITION BY RANGE (YEAR(purchased))
SUBPARTITION BY HASH (dayofyear(purchased))
SUBPARTITIONS 366
(PARTITION p0 VALUES LESS THAN (2015) ENGINE = InnoDB,
PARTITION p1 VALUES LESS THAN (2016) ENGINE = InnoDB) */
我的查詢
EXPLAIN PARTITIONS
SELECT *
FROM testtable
WHERE purchased BETWEEN '2014-12-29' AND '2014-12-31';
檢查SQL FIDDLE頁
我解釋計劃告訴我,服務器使用的所有分區,而不是特定的分區。
如何編寫查詢以便服務器掃描特定的分區? 也想知道我目前的查詢有什麼問題,以及它爲什麼不工作?
在此先感謝...
您的查詢正在查看其第一個分區的366個子分區。 – wchiquito
@wchiquito我知道,但我的問題是,查詢應該使用分區363,364,365 –