Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тормозит один из джоинов / 7 сообщений из 7, страница 1 из 1
30.01.2014, 10:13:35
    #38543136
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
EXPLAIN EXTENDED
SELECT SQL_NO_CACHE *
  FROM `fh_user_file` `t` 
  LEFT OUTER JOIN `fh_file` `file` ON (`t`.`file_id`=`file`.`id`) 
  LEFT OUTER JOIN `fh_domain` `domain` ON (`t`.`domain_id`=`domain`.`id`)
  LEFT OUTER JOIN `fh_abuse_file_user` `abuseFileUser` ON (`t`.`file_id`=`abuseFileUser`.`file_id`) 
  WHERE (((t.deleted = 0) AND (parent_id IS NULL)) AND (t.user_id='42')) 
  LIMIT 100



1SIMPLEtrefFK_user_file_user,FK_user_file_parent,IDX_fh_user_fileIDX_fh_user_file5const,const437264100Using where1SIMPLEfileeq_refPRIMARYPRIMARY4keep2share.t.file_id1100(null)1SIMPLEdomainALLPRIMARY(null)(null)(null)3100Using where; Using join buffer (Block Nested Loop)1SIMPLEabuseFileUserrefFK_abuse_file_fileFK_abuse_file_file4keep2share.t.file_id1100(null)

3 аналогичных джоина, без domain запрос выполняется 0.1 секунду, с ней - 2 секунды. В этой таблице 3 записи всего.. В чем дело не понимаю...
Причем на другом сервер такой проблемы нет :)
...
Рейтинг: 0 / 0
30.01.2014, 10:37:58
    #38543184
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
в общем изменил индекс для поиска, добавив в него все поля, и проблема исчезла. Правда почему она была все же не понятно.
...
Рейтинг: 0 / 0
30.01.2014, 10:43:13
    #38543191
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
LIMIT без ORDER BY - это так и надо??? Все равно какие записи будут в результате, лишь бы не больше сотни?
...
Рейтинг: 0 / 0
30.01.2014, 10:48:35
    #38543202
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
Да это я пока тестил, все лишнее убирал
...
Рейтинг: 0 / 0
30.01.2014, 10:50:51
    #38543205
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
HettДа это я пока тестил, все лишнее убирала смысл оптимизировать запрос, который не тот, что нужен?
MySQL умеет оптимизировать связку ORDER BY+LIMIT, а вы ему помешали.
...
Рейтинг: 0 / 0
30.01.2014, 11:12:48
    #38543254
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
Не знал.

А вот тут какой индекс лучше использовать?

Код: sql
1.
2.
3.
  WHERE t.user_id='42' AND t.deleted=0 AND t.abuse_status=0 AND t.file_id is not null
  ORDER BY t.date_download_last, t.downloads 
  LIMIT 100



В лоб

Код: sql
1.
INDEX IDX_fh_user_file2 (user_id, abuse_status, deleted, file_id, date_download_last, downloads),


не хочет сортировать по нему



1SIMPLEtrangeIDX_fh_user_file2IDX_fh_user_file211(null)407628Using index condition
...
Рейтинг: 0 / 0
30.01.2014, 11:17:57
    #38543263
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит один из джоинов
пардон, эксплейн там без ORDER BY выложил, вот так с сортировкой

1SIMPLEtrangeIDX_fh_user_file2IDX_fh_user_file211(null)407628Using index condition; Using filesort
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Тормозит один из джоинов / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]