Su consulta parece ser correcta. Su problema parece ser un problema de rendimiento, no un problema de lógica. Deberá asegurarse de que tanto su emailaddress
y id
los campos están correctamente indexados en la base de datos; de lo contrario, con cerca de un millón de filas, esperaría que su consulta se bloquee.
(Supongo que id
probablemente ya esté indexado, pero no emailaddress
. Especialmente al hacer una unión entre tablas, si alguno de estos campos no está indexado, verá MUCHOS escaneos completos de tablas).
Editar:
Al ver su comentario de que este es el caso, puede seguir la documentación en http://dev.mysql.com/doc/refman/5.0/en/create-index.html para la creación de índices. Así que algo como:
CREATE INDEX email_index ON emaildata(emailaddress) USING BTREE;