CREATE TABLE t1 ( a INT, b INT, c INT, KEY bc(b, c) ) PARTITION BY KEY (a, b) PARTITIONS 3 ; INSERT INTO t1 VALUES (17, 1, -8), (3, 1, -7), (23, 1, -6), (22, 1, -5), (11, 1, -4), (21, 1, -3), (19, 1, -2), (30, 1, -1), (20, 1, 1), (16, 1, 2), (18, 1, 3), (9, 1, 4), (15, 1, 5), (28, 1, 6), (29, 1, 7), (25, 1, 8), (10, 1, 9), (13, 1, 10), (27, 1, 11), (24, 1, 12), (12, 1, 13), (26, 1, 14), (14, 1, 15) ; SELECT b, c FROM t1 WHERE b = 1; b c 1 -8 1 -7 1 -6 1 -5 1 -4 1 -3 1 -2 1 -1 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 SELECT b, c FROM t1 WHERE b = 1 GROUP BY b, c; b c 1 -8 1 -7 1 -6 1 -5 1 -4 1 -3 1 -2 1 -1 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 10 1 11 1 12 1 13 1 14 1 15 EXPLAIN SELECT b, c FROM t1 WHERE b = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 ref bc bc 5 const 61 Using where; Using index EXPLAIN SELECT DISTINCT b, c FROM t1 WHERE b = 1; id select_type table type possible_keys key key_len ref rows Extra 1 SIMPLE t1 range bc bc 10 NULL 21 Using where; Using index for group-by DROP TABLE t1;