--disable_warnings DROP TABLE IF EXISTS `t1`; --enable-warnings CREATE TABLE `t1` ( `c1` int(11) DEFAULT NULL, `c2` varchar(30) DEFAULT NULL, `c3` date DEFAULT NULL ) ENGINE=MyISAM DEFAULT CHARSET=latin1 PARTITION BY RANGE (year(c3)) SUBPARTITION BY HASH (to_days(c3)) SUBPARTITIONS 2 ( PARTITION p0 VALUES LESS THAN (1995) , PARTITION p1 VALUES LESS THAN (2002) , PARTITION p2 VALUES LESS THAN MAXVALUE ); INSERT INTO `t1` VALUES (136,'abc','2002-01-05'), (142,'abc','2002-02-14'), (162,'abc','2002-06-28'), (174,'abc','2002-09-16'), (176,'abc','2002-09-30'), (182,'abc','2002-11-09'), (188,'abc','2002-12-19'), (140,'abc','2002-02-01'), (152,'abc','2002-04-22'), (158,'abc','2002-06-01'), (184,'abc','2002-11-22'); SELECT COUNT(*) AS total FROM t1; SELECT COUNT(*) FROM t1 WHERE c3 BETWEEN '2002-01-01' AND '2002-12-31'; DROP TABLE t1;