Я использую MySQL 5.6 Сервер. Я создал таблицу с HASH partitiong, но некоторые из того, как я не могу использовать определенные разделы в моем запросе.MySQL - Hash Partition не работает
Структура таблицы
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 Page
Мой EXPLAIN план говорит мне, что сервер использует все разделы вместо конкретных разделов.
Как написать запрос, чтобы сервер сканировал определенные разделы? А также хотите узнать, в чем проблема с моим текущим запросом и почему он не работает?
Заранее спасибо ...
Ваш запрос рассматривает 366 подразделов его первого раздела. – wchiquito
@wchiquito Я знаю это, но моя проблема в том, что в запросе должен использоваться раздел 363,364,365 –