У меня есть пара таблиц, которые я объединяю, когда выполняю следующий запрос:
SELECT article.year, authors.last_name, count(DISTINCT article.id) as count FROM
article LEFT JOIN authors ON article.id = authors.id WHERE authors.last_name =
'bloggs' GROUP BY article.year
По некоторым причинам, это занимает от 6 до 7 секунд, чтобы вернуть результаты, которые мне кажутся невероятно медленными, учитывая относительно небольшое количество строк, с которыми приходится иметь дело. Я что-то здесь не так делаю?
Если я запускаю EXPLAIN для запроса, я получаю следующее:
select_type table type possible_keys key key_len ref rows extra
=====================================================================================
simple article all null null null null 762 using temporary; using filesort
simple authors all null null null null 5061 using where; using join buffer
Обе таблицы являются InnoDB. Я запускаю это с моей локальной машины, которая имеет довольно низкие характеристики (windows xp, 1 ГГц, 1 ГБ ОЗУ), но даже в этом случае я бы подумала, что это будет быстрее. Если я загружу еще несколько строк в таблицы, это займет минуты, а не секунды.
Есть мысли?
Структура таблицы ниже:
Article:
field type null key default extra
=======================================================
id int yes null
year char(20) yes null
volume char(20) yes null
issue char(20) yes null
title text yes null
Authors:
field type null key default extra
=======================================================
id int yes null
last_name char(100) yes null
initials char(10) yes null