У вас есть эти индексы?
table2: (col1)
table3: (col2, col3) -- in either order
Еще один совет: не используйте *
(как в SELECT *
), если вам не нужны все столбцы. Это предотвращает определенные оптимизации. Если вы хотите обсудить это далее, укажите реальный запрос и SHOW CREATE TABLE
для каждой таблицы.
Если какой-либо из столбцов, используемых для объединения, не совпадает с типом данных, набором символов и сопоставлением, то индексы могут быть бесполезными.
Пожалуйста, предоставьте EXPLAIN SELECT ...
; это даст некоторые подсказки, которые мы можем обсудить.
Сколько строк в наборе результатов? Похоже, более 100K? Если это так, то, возможно, время передачи по сети является реальным замедлением?