MySQL版本8.0.29,良好的索引,使此查询更有效

2q5ifsrm  于 2023-11-16  发布在  Mysql
关注(0)|答案(1)|浏览(95)
SELECT ra.id, inv.id
FROM activity ra 
LEFT JOIN inventory inv ON ra.tag_id = inv.tag_id 
WHERE ra.status = :status

字符串
这是我当前的查询,有时它会很慢,我假设这是由于连接。有没有什么索引可以使这个查询更快?
我相信tagid上已经有一个索引了,但它似乎并没有使它更快。

juud5qan

juud5qan1#

你没有告诉我们tag_id索引在哪个表上。如果你在inventory表中还没有tag_id的索引,那么添加它:

CREATE INDEX idx_tag ON inventory (tag_id);      -- on InnoDB
-- or
CREATE INDEX idx_tag ON inventory (tag_id, id);  -- on MyISAM

字符串
此外,您可以在activity表上添加以下索引:

CREATE INDEX idx_status ON activity (status);      -- on InnoDB
-- or
CREATE INDEX idx_status ON activity (status, id);  -- on MyISAM

相关问题