MySQL JOIN查询索引优化

标签 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;

任何帮助将不胜感激。

最佳答案

您应该对 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/

相关文章:

mysql - 'false'可以匹配mysql中的某个字符串吗?

mysql从另一个表中选择一行的多列

php - 如何在 Zend Framework 中使用 Join

mysql - 连接多个表的计数

mysql - 为大表放置哪些 SQL 索引

mysql - 插入迁移不生成差异

php - 计数变量php没有数据库

solr - django-haystack 不会索引我的数据

php - 将所有图像加入到其相关页面

mysql - 不同 MySQL 系统上 Update 的执行时间差异很大