So, I ran the following in the MySQL console as a benchmark to see what was holding back the speed of my query.
SELECT bbva_deductions.ded_code, SUBSTRING_INDEX(bbva_deductions.employee_id, '-' , -1) AS tt_emplid, bbva_job.paygroup, bbva_job.file_nbr, bbva_deductions.ded_amount FROM bbva_deductions LEFT JOIN bbva_job ON CAST(SUBSTRING_INDEX(bbva_deductions.employee_id, '-' , -1) AS UNSIGNED) = bbva_job.emplid LIMIT 500
It took about 4 seconds to start. (seems very high for only 500 lines).
The simple removal of a portion of the CAST compound decreased by 0.01 second ...
Why is Mr. Cast so slow? Am I doing something to piss off the MySQL gods here?
Edit:
According to the EXPLAIN output requested here:

And without CAST:

EXPLAIN EXTENDED:

source share