2014-11-02 4 views
0

У меня есть этот запрос. Предполагая, что индекс еще не создан, как можно оптимизировать его с помощью индекса, чтобы запрос выполнялся быстрее? Как создать индекс?MySQL JOIN Оптимизация индекса запросов

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

У вас должны быть указатели на все столбцы, используемые в статьях JOIN. Вы можете создать индексы либо с CREATE INDEX или ALTER TABLE команд:

CREATE INDEX u_companyid ON users (companyid); 

ALTER TABLE users ADD INDEX (companyid); 

Обратите внимание, что первичные ключи таблиц уже проиндексированы, вам не нужно, чтобы добавить индекс в явном виде.

+0

Вы хотите добавить индекс на users.company_id, jobs.user_id и useraccounts.user_id? если да, я пропущу другие столбцы, которые нужно индексировать? – Bogz

+0

@MarkBonnieVestil точно – Strawberry

+0

@Barmar спасибо мужчина. Как насчет индексации company.company_id. Помогло ли это для ускорения работы над моим запросом выше? – Bogz

Смежные вопросы