Вот мой запрос:
select count(1) AS 'number',
'pronexo_pronexo'.'unique_products'.'product_id' AS 'product_id',
'pronexo_pronexo'.'products'.'name' AS 'name'
from ( 'pronexo_pronexo'.'unique_products'
join 'pronexo_pronexo'.'products'
on(('pronexo_pronexo'.'unique_products'.'product_id' = 'pronexo_pronexo'.'products'.'id')))
where isnull('pronexo_pronexo'.'unique_products'.'exit_time')
group by 'pronexo_pronexo'.'unique_products'.'product_id'
И вот результат EXPLAIN
:
Любая идея должна ли я создать индекс, по которому столбцы (столбцы) будут делать это быстрее? Это займет около 3 секунд. Кстати, данные сейчас не огромны.
select count(1) AS 'number',
u.'product_id',
p.'name'
from 'pronexo_pronexo'.'unique_products' AS u
join 'pronexo_pronexo'.'products' AS p
on u.'product_id' = p.'id'
where isnull(u.'exit_time')
group by u.'product_id'
Измените isnull(u.exit_time)
на u.exit_time IS NULL
.
Добавьте INDEX(exit_time, product_id)
в unique_products
.
В products
, если id
не проиндексирован, проиндексируйте его.
Для дальнейшего обсуждения просьба предоставить SHOW CREATE TABLE
.