Do you have rough row counts for your a and b tables? I have some header tables with small numbers of rows (sub 100) and a couple of data tables at about 2 million rows and would like to try and sim your problem.
As an example one of the explains to one of the selects I've been trying gives me:
table type possible_keys key key_len ref rows Extra
A index NULL Primary 2 NULL 86 Using index
B ref Sbu Sbu 3 A.sbu_id 23608 Using index
So I think the numbers are fairly comparable.
It's taking about 4 secs per run.
One thing I have noticed is that it appears to run slightly quicker if the indexes are based on numeric IDs.
Cheers
Justin