Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Не работают ИНДЕКСЫ при GROUPBY по двух полям (Трава) 09/02/2006 - 23:46:52
      Re: Не работают ИНДЕКСЫ при GROUPBY по двух полям (Трава) 09/02/2006 - 23:49:20
      Re: Не работают ИНДЕКСЫ при GROUPBY по двух полям (Dinky) 10/02/2006 - 01:20:58
      Re: Проверил: на PostgreSQL и FireBird все ТАКЖЕ (Трава) 10/02/2006 - 01:49:20
      Re: Проверим DB2 и Oracle. DB2 теперь бесплатна! (Трава) 10/02/2006 - 01:53:27
      Re: на каждый чих MySQL пересоздает таблицу 100Гб (Трава) 10/02/2006 - 01:59:25
      Re: на каждый чих MySQL пересоздает таблицу 100Гб (walrus) 10/02/2006 - 07:50:02
      Re: постоянное добавление полей это часть СХЕМЫ (Трава) 10/02/2006 - 12:30:36
      Re: постоянное добавление полей это часть СХЕМЫ (Dinky) 10/02/2006 - 19:49:09
      Re: Спасибо :)благодарен, но хотелось бы знать... (Трава) 13/02/2006 - 23:43:57
      Re: Спасибо :)благодарен, но хотелось бы знать... (Dinky) 14/02/2006 - 19:47:56



From: Трава - 09/02/2006 - 23:46:52
Subject:Не работают ИНДЕКСЫ при GROUPBY по двух полям
-----------------
Я заметил что MySQL

не использует индексов при группировке по двум полям
в случае если есть отдельные индексы по каждому из полей участвующих в группировке
(но нет объединенного индекса по этим двум полям )

То есть оказывается что MySQL при группировках использует только те индексы что подходят по набору полей, которые указаны в конструкции GROUP BY.


Вот, к примеру, запрос
EXPLAIN SELECT A, B FROM MYBASE GROUP BY A, B

Если есть один объединенный индекс он будет использоваться
CREATE INDEX ABX ON MYBASE(F1,F2)

Если есть два отдельных индекса, то они не будут использоваться
CREATE INDEX AX ON MYBASE(A)
CREATE INDEX BX ON MYBASE(B)

у меня стоит MySQL версия 5.0.18

Проверьте у себя плз

Будет ли индекс использоваться?
Это я определяю с помощью:
1. с помощью EXPLAIN, он это показывает в поле KEY
2. а также с помощью опытных запросов (смотрю на время выполнения)

Я искал в нете информацию по этому поводу и не нашел.

Мы хотели использовать формат MyISAM для большого анализа с ПРОИЗВОЛЬНЫМИ группировками

Дело в том, что в нашей базе более 100 полей

Для того чтобы учесть все произвольные группировки пользователей придется сделать очень много индексов

100 во второй степени, то есть 10 000 индексов только чтобы учесть все возможные группировки с участием двух полей

100 в третье степени, то есть 1 000 000 индексов…

После этих подсчетов становится понятно, что MySQL нам не подходит

Один из варинатов решения проблемы

Можно дать юзеру ограниченное количество вариантов группировок



[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
26497



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |