У меня есть этот запрос:
SELECT a.id, b.discount FROM (a LEFT JOIN b ON b.id_a = a.id);
Команда EXPLAIN для этого запроса:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE a index NULL PRIMARY 4 NULL 1489 Using index
1 SIMPLE b ALL NULL NULL NULL NULL 819
A - это таблица с 1489 строками, а B - представление SQL.Теперь я понимаю, что MySQL должен делать 1489 * 819 операций, что является слишком неоптимизированной операцией.Если бы B был таблицей, я бы создал индекс для столбца id_a, но я понятия не имею, что делать с представлением SQL.
Кто-нибудь может помочь?