这是我的查询:
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秒钟才能执行。顺便说一下,目前数据还不是很大。
答案 0 :(得分:0)
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
。