Otimize o SQL que usa entre a cláusula

Considere as 2 tabelas a seguir:

Table A:
id
event_time

Table B
id
start_time
end_time

Cada registro na tabela A é mapeado para exatamente 1 registro na tabela B. Isso significa que a tabela B não possui períodos sobrepostos. Muitos registros da tabela A podem ser mapeados para o mesmo registro na tabela B.

Preciso de uma consulta que retorne todos os pares A.id, B.id. Algo como

SELECT A.id, B.id 
FROM A, B 
WHERE A.event_time BETWEEN B.start_time AND B.end_time

Estou usando o MySQL e não consigo otimizar esta consulta. Com ~ 980 registros na tabela A e 130.000 na tabela B, isso leva uma eternidade. Entendo que isso precisa realizar 980 consultas, mas levar mais de 15 minutos em uma máquina robusta é estranho. Alguma sugestão

P.S. Não consigo alterar o esquema do banco de dados, mas posso adicionar índices. No entanto, um índice (com 1 ou 2 campos) nos campos de hora não ajuda.

questionAnswers(19)

yourAnswerToTheQuestion