반응형
Mysql, 날짜 범위에서 파티셔닝이 작동하지 않습니다.
테이블을 분할하려고 합니다. 다음은 테이블의 구조입니다.
CREATE TABLE IF NOT EXISTS `actions` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uuid` varchar(36) COLLATE utf8_unicode_ci DEFAULT NULL,
`date` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
`username` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`event` varchar(16) COLLATE utf8_unicode_ci NOT NULL,
`obj_id` int(11) unsigned NOT NULL,
`inline` text COLLATE utf8_unicode_ci NOT NULL,
`meta` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
PRIMARY KEY (`id`,`date`),
KEY `event` (`event`),
KEY `obj_id` (`obj_id`),
KEY `username` (`username`),
KEY `date` (`date`),
KEY `user_date` (`username`,`date`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci
PARTITION BY RANGE ( UNIX_TIMESTAMP(date))
(PARTITION actions_0 VALUES LESS THAN (1209592800) ENGINE = InnoDB, # 2008-05-01
PARTITION actions_images_1 VALUES LESS THAN (1212271200) ENGINE = InnoDB, # 2008-06-01
[...]
PARTITION actions_67 VALUES LESS THAN (1388530800) ENGINE = InnoDB,
PARTITION actions_68 VALUES LESS THAN MAXVALUE ENGINE = InnoDB)
이제, 제가 특정 날짜를 선택할 때는 괜찮은 것 같습니다.
EXPLAIN PARTITIONS SELECT * FROM `actions` WHERE `date` = '2008-05-04 16:13:15' ;
+----+-------------+----------------+------------------
| id | select_type | table | partitions
+----+-------------+----------------+------------------
| 1 | SIMPLE | actions | actions_1
하지만 제가 이 질문을 한다면,
EXPLAIN PARTITIONS SELECT * FROM `actions` WHERE `date` > '2008-05-04 16:13:15' AND `date` < '2008-05-05 16:13:15';
mysql에서 모든 actions_N 테이블을 검색합니다. 제가 무엇을 잘못하고 있습니까?파티션을 사용하는 것은 처음이지만 설명서를 따르면 어디서 틀렸는지 찾을 수 없습니다.
감사합니다!
음, 그건 mysql 버그야 http://bugs.mysql.com/bug.php?id=28928
RANGE COLUMNS에서는 DATE 또는 DATTIME 이외의 날짜 또는 시간 유형을 사용하는 파티셔닝 열을 사용할 수 없습니다.
DATE 및 DATTIME. 날짜 또는 시간과 관련된 다른 데이터 형식을 사용하는 열은 분할 열로 지원되지 않습니다.
언급URL : https://stackoverflow.com/questions/8258293/mysql-partitioning-not-working-on-date-range
반응형
'programing' 카테고리의 다른 글
제출하기 전에 양식에 필드를 추가하는 방법은 무엇입니까? (0) | 2023.08.24 |
---|---|
오른쪽 테이블 결과에서 다차원 배열 가져오기 (0) | 2023.08.24 |
배경 이미지와 색상을 함께 사용할 수 없는 이유는 무엇입니까? (0) | 2023.08.24 |
div의 내용을 백분율로 확대하시겠습니까? (0) | 2023.08.24 |
Android에서 대화 상자가 해제되거나 취소되는 차이점은 무엇입니까? (0) | 2023.08.24 |