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




MySQL.RU - Webboard



Вернуться
Вопрос по ключам (Casper) 04/04/2013 - 00:09:20
      Re: Вопрос по ключам (Akina) 04/04/2013 - 11:43:30
      Re: Вопрос по ключам (Casper) 04/04/2013 - 18:56:05
      Re: Вопрос по ключам (Akina) 04/04/2013 - 21:03:47
      Re: Вопрос по ключам (Casper) 05/04/2013 - 14:09:21
      Re: Вопрос по ключам (Akina) 05/04/2013 - 14:54:41
      Re: поправка (Akina) 05/04/2013 - 14:58:34
      Re: Вопрос по ключам (Casper) 06/04/2013 - 18:59:06
      Re: Вопрос по ключам (Akina) 06/04/2013 - 20:59:04
      Re: Вопрос по ключам (Casper) 07/04/2013 - 17:34:44

> Original message text:
> From: Casper - 04/04/2013 - 00:09:20
> Subject:Вопрос по ключам
> -----------------
> Подскажите
>
> Если в потенциально большой таблице есть поле tinyint(1)
> где 80%-90% строк имеют в этом поле значение 1, а остальные 0
>
> нужно ли делать индекс по этому полю, с учетом того что это поле участвует в условии отбора в SELECTах?
>
> Если можно хоть чуть-чуть на пальцах ПОЧЕМУ да/нет
> может я лучше пойму механизм индексации
> (потому как имею общее представление)
>
> за ранее Спасибо !
>


From: Akina - 05/04/2013 - 14:54:41
Subject:Вопрос по ключам
-----------------
> Как быть ? Делать составные ключи на все случаи жизни ? Это нормальное явление ?

Иногда нормальное, иногда нет.

> выборка может идти по 3-5 полям

Если есть выборки (например) с отбором по полям A,B,C,D,E и по полям A,D,E - то составной индекс по пяти полям, где первые три - это поля A,D,E, а остальные два - поля B,C (например, индекс D,E,A,B,C), может использоваться эффективно в обоих запросах. Если же индекс, например, составлен как (A,B,C,D,E) - то в обоих запросах может использоваться только его префиксная чась для поля А (т.е. он практически эквивалентен индексу по одному этому полю, и даже чуток хуже, потому как толще).

Есть ещё одно - если все необходимые поля (не только отборные) присутствуют в индексе - сервер с большой вероятностью вообще не станет обращаться к таблице. Например вышеуказанный индекс D,E,A,B,C для запроса select A,C,sum(D) from table where A=1 and D=3 and E<5.

> проблемное место ключей - помимо избыточности дискового пространства - это время на их создание при записи в БД

Не только. Впрочем, это нормально, если где-то прибыло, то где-то непременно убудет. Так что задача - грамотно подобрать баланс.


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

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

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



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