I have this MySQL query that is very slow, I presume because of all the JOINs (it seems complicated, but it's a matter of lot of tables):

```
SELECT DISTINCT doctors.doc_id, 
    doctors.doc_user, 
    doctors.doc_first, 
    doctors.doc_last, 
    doctors.doc_email, 
    doctors.doc_notes, 
    titles.tit_name, 
    specializations.spe_name, 
    activities.act_name, 
    users.use_first, 
    users.use_last,
    (SELECT COUNT(*) FROM locations WHERE locations.loc_doctor = doctors.doc_id) AS loc_count,
    (SELECT COUNT(*) FROM reception WHERE reception.rec_doctor = doctors.doc_id) AS rec_count,
    (SELECT COUNT(*) FROM visits INNER JOIN reports ON visits.vis_report = reports.rep_id  WHERE visits.vis_doctor = doctors.doc_id AND reports.rep_user LIKE '%s') AS vis_count
FROM
    doctors
INNER JOIN titles ON titles.tit_id = doctors.doc_title
INNER JOIN specializations ON specializations.spe_id = doctors.doc_specialization
INNER JOIN activities ON activities.act_id = doctors.doc_activity
LEFT JOIN locations ON locations.loc_doctor = doctors.doc_id
INNER JOIN users ON doctors.doc_user = users.use_id
WHERE
    ((doctors.doc_last LIKE %s) OR (doctors.doc_first LIKE %s) OR (doctors.doc_email LIKE %s)) 
    AND doctors.doc_user LIKE %s 
    AND locations.loc_province LIKE %s 
    AND doctors.doc_specialization LIKE %s 
    AND doctors.doc_activity LIKE %s 
ORDER BY %s

```

All the %s are parameters in a sprintf() PHP function  

The most important thing to notice is... that I have NO indexes on MySQL! I presume that I can speed up the process adding some indexes... but what and where? There are so many joins and search parameters that I am in confusion about what would be efficient :-)

Please can you help?
Thanks in advance!