







|
MySQL.RU - Webboard
Вернуться
Странное поеведение индексов (SveRel) 13/08/2010 - 20:15:34
Re: Странное поеведение индексов (Diter) 16/08/2010 - 18:49:08
Re: Понял! (SveRel) 16/08/2010 - 23:34:52
From: SveRel - 13/08/2010 - 20:15:34
Subject:Странное поеведение индексов
-----------------
Есть список статей привязанных к компаниям. Связь: много-ко-многим и для этого используется таблица связей состоящая из двух столбцов. Что бы найти все статьи привязанных к категории #5 я выполняю запрос:
====================
EXPLAIN SELECT *
FROM `articles` AS `r1`
WHERE `r1`.`id`
IN (
SELECT `r2`.`article_id`
FROM `companies_articles_rel` AS `r2`
WHERE `r2`.`company_id` = 5
)
=====================================
Прикол в том, что MySQL не хочет использовать индексы. Она пишет:
possible_keys = NULL.
Хотя если выполнить запрос:
=====================================
EXPLAIN SELECT *
FROM `articles` AS `r1`
WHERE `r1`.`id`
IN (6)
=====================================
Тогда possible_keys = PRIMARY - т.е. всё таки она их использует, но не тогда когда выполняется вложенный SQL-запрос.
P.S.> Сам результат первого SQL-запроса правильный - т.е. возвращает она то что мне нужно. Но почему не используются индексы???
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
37358
|
|