Какие-либо входные данные о том, как я могу оптимизировать объединения в запросе MySQL? Например, рассмотрим следующий запрос
SELECT E.name, A.id1, B.id2, C.id3, D.id4, E.string_comment
FROM E
JOIN A ON E.name = A.name AND E.string_comment = A.string_comment
JOIN B ON E.name = B.name AND E.string_comment = B.string_comment
JOIN C ON E.name = C.name AND E.string_comment = C.string_comment
JOIN D ON E.name = D.name AND E.string_comment = D.string_comment
Таблица A, B, C, D являются временными таблицами и содержит 1096 строк, а таблица E (также временная таблица) содержит 426 строк. Не создавая никакого индекса, MySQL EXPLAIN показывал мне все строки, которые ищутся во всех таблицах. Теперь я создал индекс FULLTEXT для имени как name_idx и string_comment как string_idx для всех таблиц A, B, C, B и E. Команда EXPLAIN все еще дает мне тот же результат, как показано ниже.
Также обратите внимание, что
name и string_comment имеют тип VARCHAR, а idX имеют тип int (15)
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE A ALL name_idx,string_idx 1096
1 SIMPLE B ALL name_idx,string_idx 1096 Using where
1 SIMPLE C ALL name_idx,string_idx 1096 Using where
1 SIMPLE D ALL name_idx,string_idx 1096 Using where
1 SIMPLE E ALL name_idx,string_idx 426 Using where
Любые комментарии о том, как я могу настроить этот запрос?
Спасибо.