mysql> explain SELECT type,email FROM lists join (aliases) on (aliases.uid=lists.uid) WHERE lists.uid = 'etbe@example.com' or aliases.alias='etbe@example.com'; +----+-------------+---------+-------+------------------------------------+------------+---------+-------------------+----------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+---------+-------+------------------------------------+------------+---------+-------------------+----------+--------------------------+ | 1 | SIMPLE | lists | index | lists_index_constraint,lists_index | lists_type | 1 | NULL | 18473452 | Using index | | 1 | SIMPLE | aliases | ref | idx_alias,idx_uid | idx_uid | 255 | example.lists.uid | 1 | Using where; Using index | +----+-------------+---------+-------+------------------------------------+------------+---------+-------------------+----------+--------------------------+ 2 rows in set (0.00 sec) mysql> explain SELECT type,email FROM lists WHERE uid = 'etbe@example.com'; +----+-------------+-------+------+------------------------------------+-------------+---------+-------+------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+-------+------+------------------------------------+-------------+---------+-------+------+--------------------------+ | 1 | SIMPLE | lists | ref | lists_index_constraint,lists_index | lists_index | 255 | const | 115 | Using where; Using index | +----+-------------+-------+------+------------------------------------+-------------+---------+-------+------+--------------------------+ 1 row in set (0.00 sec) mysql> explain SELECT type,email FROM lists right join (aliases) on (aliases.uid=lists.uid) WHERE lists.uid = 'etbe@example.com' or aliases.alias='etbe@example.com'; +----+-------------+---------+-------+------------------------------------+-------------+---------+---------------------+---------+--------------------------+ | id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra | +----+-------------+---------+-------+------------------------------------+-------------+---------+---------------------+---------+--------------------------+ | 1 | SIMPLE | aliases | index | idx_alias | idx_uid | 255 | NULL | 2073 | Using index | | 1 | SIMPLE | lists | ref | lists_index_constraint,lists_index | lists_index | 255 | example.aliases.uid | 1026180 | Using where; Using index | +----+-------------+---------+-------+------------------------------------+-------------+---------+---------------------+---------+--------------------------+ 2 rows in set (0.00 sec)