Sua consulta parece estar correta. Seu problema parece ser um problema de desempenho, não um problema de lógica. Você precisará certificar-se de que seu
emailaddress
e id
campos estão devidamente indexados no banco de dados - caso contrário, com cerca de um milhão de linhas, eu esperaria que sua consulta travasse. (Eu acho que
id
provavelmente já está indexado, mas não emailaddress
. Especialmente ao fazer uma junção entre tabelas, se um desses campos não estiver indexado, você verá muitas varreduras de tabela completas.) Editar:
Vendo seu comentário de que este é o caso, você pode seguir a documentação em http://dev.mysql.com/doc/refman/5.0/en/create-index.html para a criação de índices. Então algo como:
CREATE INDEX email_index ON emaildata(emailaddress) USING BTREE;