There's this already populated database which came from another dev.
I'm not sure what went on in that dev's mind when he created the tables, but on one of our scripts there is this query involving 4 tables and it runs super slow.
SELECT
a.col_1, a.col_2, a.col_3, a.col_4, a.col_5, a.col_6, a.col_7
FROM
a, b, c, d
WHERE
a.id = b.id
AND b.c_id = c.id
AND c.id = d.c_id
AND a.col_8 = '$col_8'
AND d.g_id = '$g_id'
AND c.private = '1'
NOTE: $col_8 and $g_id are variables from a form
It's only my theory that it's due to tables b and c not having an index, although I'm guessing that the dev didn't think that it was necessary since those tables only tell relations between a and d, where b tells that the data in a belongs to a certain user, and c tells that the user belongs to a group in d.
As you can see, there's not even a join or other extensive query functions used but this query which returns only around 100 rows takes 2 minutes to execute.
Anyway, my question is simply this post's title. Will a mysql query run slower if one of the tables involved has no index defined?