MySQL JOIN查询索引优化

时间:2014-11-02 08:39:31

标签: mysql join indexing

我有这个查询。假设还没有创建索引,我如何使用索引优化它,以便查询运行得更快?我如何创建索引?

select c.company_name, c.company_id FROM companies AS c 
JOIN users AS u USING(companyid) 
JOIN jobs AS j USING(userid) 
JOIN useraccounts AS ua USING(userid) 
WHERE j.jobid = 10;

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

您应该在JOIN子句中使用的所有列上都有索引。您可以使用CREATE INDEXALTER TABLE命令创建索引:

CREATE INDEX u_companyid ON users (companyid);

ALTER TABLE users ADD INDEX (companyid);

请注意,表的主键已经编入索引,您无需显式添加索引。