I have a table with this structure: mysql> describe user_groups; +----------+----------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +----------+----------------------+------+-----+---------+----------------+ | id | int(11) unsigned | NO | MUL | NULL | auto_increment | | user_id | int(11) unsigned | NO | PRI | NULL | | | group_id | smallint(5) unsigned | NO | PRI | NULL | | +----------+----------------------+------+-----+---------+----------------+ primary key of this table is : PRIMARY(user_id, group_id) I have simple query: mysql> EXPLAIN SELECT `UserGroup`.`user_id` , `UserGroup`.`group_id` FROM `user_groups` AS `UserGroup` WHERE `UserGroup`.`user_id` IN ( 1, 2 ); +----+-------------+-----------+-------+---------------+---------+---------+------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-----------+-------+---------------+---------+---------+------+------+--------------------------+ | 1 | SIMPLE | UserGroup | range | PRIMARY | PRIMARY | 4 | NULL | 4 | Using where; Using index | +----+-------------+-----------+-------+---------------+---------+---------+------+------+--------------------------+ it has `using where;` , according it has additional disk seek,I know `using where;` concept, and Also I know it is not terrible , but conceptually I want to know why this query has `using where;`, although the condition is on primary key directly and it doesn't have order or anything that causes `using where;`. How can I fix this `using where;`?