|
MySQL.RU - Webboard
Вернуться
index_merge в EXPLAIN (mich) 02/01/2008 - 12:22:13
Re: index_merge в EXPLAIN (vi.k) 02/01/2008 - 17:20:52
Re: index_merge в EXPLAIN (mich) 03/01/2008 - 00:17:10
Re: index_merge в EXPLAIN (vi.k) 03/01/2008 - 06:18:51
Re: index_merge в EXPLAIN (mich) 03/01/2008 - 13:24:22
Re: index_merge в EXPLAIN (vi.k) 03/01/2008 - 15:41:54
Re: index_merge в EXPLAIN (mich) 03/01/2008 - 16:04:32
Re: заставляет сначала думать ... (mich) 03/01/2008 - 16:12:34
Re: заставляет сначала думать ... (vi.k) 04/01/2008 - 03:48:05
> Original message text:
> From: mich - 02/01/2008 - 12:22:13
> Subject:index_merge в EXPLAIN
> -----------------
> Здравствуйте,
> следующий запрос часто попадает в slow query file.
>
> SELECT list_id INTO id
> FROM TEST_lists_view_log
> WHERE list_id = listId
> AND user_id <=> userId
> AND ip = userIP
> AND view_at > DATE_SUB(NOW(), INTERVAL 86400 SECOND);
>
> list_id и user_id имеют индексы, так как являются внешними ключами.
>
> Выполнение EXPLAIN дает, что
> type: index_merge,
> key: list_id,user_id,
> Extra: Using intersect(list_id,user_id); Using where
>
> Можно ли ускорить выполнение запроса, убрав как-то использование двух индексов?
>
From: vi.k - 02/01/2008 - 17:20:52
Subject:index_merge в EXPLAIN
-----------------
Только предполагаю. За адекватность не отвечаю.
Вроде как логично использование двух индексов, если у вас на каждый list_id по многу user_id. Можно, конечно, создать один общий индекс и его использовать - тогда точно не будет intersect :) Можно даже primary key на всё то, что в условии используется - вроде как вы всё равно ожидаете одно значение (кстати, логично было бы как-то запрос ограничить - LIMIT 1, например). Но поможет ли всё это?
А может не так уж и медленно выполняется выборка по list_id и user_id? Проверьте без ip и view_at, но с LIMIT 1. А то может причина в дальнейней проверке? Индекс на ip, view_at и заменить NOW() конкретной подстановкой?
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
32712
|
|