MYSQL: LEFT JOIN работать медленно

У меня есть две таблицы:

Таблица 1

Таблица 2

Затем я присоединяюсь к обеим таблицам слева:

SELECT DATE(`Inspection_datetime`) AS Date, `Line`,`Model`, `Lot_no`, 
       COUNT(A.`Serial_number`) AS Qty,B.`name`
FROM `inspection_report` AS A
LEFT JOIN `Employee` AS B
ON A.`NIK` LIKE B.NIK
GROUP BY Date , A.Model ,A.Lot_no,A.Line,B.`name`
ORDER BY Date DESC

Этот запрос заставляет мой плагин Jquery DataTable работать очень медленно, даже если данные не отображаются. Странная точка в этом поле B.name, если я упомяну это в запросе, данные не появятся, но если я удалю их, данные появятся (я имею в виду не делать LEFT JOIN).

Не достаточно ли мой запрос хорош? это мой EXPLAIN:

TABLE 1

id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  inspection_report   ALL NULL    NULL    NULL    NULL    334518  

TABLE 2
    id  select_type table   type    possible_keys   key key_len ref rows    Extra
    1   SIMPLE  Employee    ALL NULL    NULL    NULL    NULL    100 

QUERY
id  select_type table   type    possible_keys   key key_len ref rows    Extra
1   SIMPLE  B   ALL NULL    NULL    NULL    NULL    100 Using temporary; Using filesort
1   SIMPLE  A   ALL NULL    NULL    NULL    NULL    334520  Using where; Using join buffer

1 ответ

Любая особая причина, по которой вы присоединяетесь к LIKE пункт вместо равенства?

SELECT DATE(`Inspection_datetime`) AS Date, `Line`,`Model`, `Lot_no`, 
       COUNT(A.`Serial_number`) AS Qty,B.`name`
FROM `inspection_report` AS A
LEFT JOIN `Employee` AS B
ON A.`NIK` = B.NIK
GROUP BY Date , A.Model ,A.Lot_no,A.Line,B.`name`
ORDER BY Date DESC

должен дать лучшие результаты.

Кроме того, добавление индекса в A.NIK должно значительно облегчить операцию соединения.

CREATE INDEX inspection_report_nik ON inspection_report (NIK);
Другие вопросы по тегам