我有这个疑问。假设尚未创建索引,我如何使用索引优化它以使查询运行得更快?如何创建索引?
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;
任何帮助将不胜感激。
最佳答案
您应该对 JOIN
子句中使用的所有列都有索引。您可以使用 CREATE INDEX
创建索引或ALTER TABLE
命令:
CREATE INDEX u_companyid ON users (companyid);
ALTER TABLE users ADD INDEX (companyid);
请注意,表的主键已建立索引,您无需显式添加索引。
关于MySQL JOIN查询索引优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26697507/