Помогите оптимизировать запрос

jenia

Новичок
Помогите оптимизировать запрос

Делаю модуль под CMS Drupal и один из запросов в модуле слишком долго выполняется (11 милисекунд). Вот сам запрос:
PHP:
SELECT term_data.tid, term_hierarchy.parent, term_data.name, url_alias.dst
FROM term_data, term_hierarchy, url_alias
WHERE term_data.tid = term_hierarchy.tid AND term_data.vid = 1 AND url_alias.src = CONCAT('taxonomy/term/', term_data.tid)
ORDER BY term_data.name
Можно его как-то оптимизировать? Наверное надо через LEFT JOIN объеденить, а не через WHERE?
 

findnext

Новичок
Выполни explain и покажи структуру таблиц. И используй джойны
 

prolis

Новичок
[telepat mode_on]
url_alias.src = CONCAT('taxonomy/term/', term_data.tid)
- mysql не поддерживает индексы по функциям от поля
рекомендую в таблице url_alias создать поле tid, типа поля term_data.tid, заполнить его и использовать в запросе
 

jenia

Новичок
Автор оригинала: prolis
[telepat mode_on]
url_alias.src = CONCAT('taxonomy/term/', term_data.tid)
- mysql не поддерживает индексы по функциям от поля
рекомендую в таблице url_alias создать поле tid, типа поля term_data.tid, заполнить его и использовать в запросе
Я бы с удовольствием, но это ведь не моя CMS, а Друпал и изменив ядро движка я не смогу обновлять CMS нормально.
 
Сверху