Welcome to PHPClub
13 сентября отмечаем День Программиста! Приходите! Ищем хорошего PHP-разработчика Москва,
офис ~90-150К
Боишься нашего дизайна?
поиск:
   
 Начало | Настройки | Расширенный поиск | РегистрацияПосмотреть новые сообщения 
  
PHP Club форумы: > PHP и базы данных > PHP & Mysql > построение индексов на таблице
 

Автор
Тема ОТВЕТИТЬ
Dez
Новичок

На форуме с: Aug 2009
Cообщений: 38
Город:
построение индексов на таблице

Привет. Давно разбирал, хочу уточнить.
Имеется таблица:
a1 b2 c3 d4 sum
.................................

имею первичный ключ: a1 b2 c3 d4.
Вопросы:
1) Это означает, что на таблице уже существуют также индексы:

a1 b2 c3
a1 b2
a1

?
2) Если в выборке не участвует a1 это означает, что мои индексы - по барабану и надо строить еще например: b2 c3 d4 ?


__________________
Главное - вовремя нажать на кнопку .

Old Post 10.09.10 06:40 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
zerkms
TDD infected

На форуме с: Jan 2004
Cообщений: 4767
Город: Komsomolsk-na-Amure, Russia

 
Это означает, что на таблице уже существуют также индексы:


Нет, не означает - индекс всего один. Но для последовательностей a1+b2, a1, a1+b2+c3 этот индекс будет использоваться (тут есть оговорки, но в некоем приближении именно так)

2. Да, означает.


__________________
tvfёdor - оперативно уведомляет о раздачах rutracker

Old Post 10.09.10 07:15 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
prolis
Активист PHPClub

На форуме с: Jul 2008
Cообщений: 324
Город:

Все верно, http://dev.mysql.com/doc/refman/5.1...ql-indexes.html
Во втором случае зачастую можно добавить псевдоусловие для использования индекса (a1>0)

Old Post 10.09.10 12:26 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
zerkms
TDD infected

На форуме с: Jan 2004
Cообщений: 4767
Город: Komsomolsk-na-Amure, Russia

prolis
нельзя. условие типа range не позволяет искать по частям индекса правее.

т.е. если есть индекс a+b+c+d, то при условии
a = 1 AND b > 10 AND c = 3 AND d = 4
будет использоваться только часть a+b

ну и чтобы соблюсти регламент: http://dev.mysql.com/doc/refman/5.1...timization.html


__________________
tvfёdor - оперативно уведомляет о раздачах rutracker

Old Post 10.09.10 12:33 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
FB3
Активист PHPClub

На форуме с: Jul 2008
Cообщений: 390
Город: SPb

zerkms
А если написать b<>10, тоже не прокатит?

Old Post 10.09.10 13:04 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
zerkms
TDD infected

На форуме с: Jan 2004
Cообщений: 4767
Город: Komsomolsk-na-Amure, Russia

FB3
коротко: нет

длинно:
An interval can be used as long as it is possible to determine a single key tuple containing all rows that match the condition

плюс почитай примеры вокруг этой фразы.


__________________
tvfёdor - оперативно уведомляет о раздачах rutracker

Old Post 10.09.10 13:14 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
fixxxer
Старожил PHPCluba

На форуме с: May 2003
Cообщений: 3940
Город: Moscow, Russia

Если немного упростить, то можно представить себе вот типа такую записную книжку, только в которой дальше есть такие же закладки по второй букве, третьей и так далее - это как раз индекс. И подумать, в каких случаях это поможет

Old Post 10.09.10 13:21 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
zerkms
TDD infected

На форуме с: Jan 2004
Cообщений: 4767
Город: Komsomolsk-na-Amure, Russia

fixxxer
Угу, когда разговор заходит в тупик и приходится объяснять на пальцах - аналогично рассказываю о записной книжке, отсортированной по Фамилия+Имя ))


__________________
tvfёdor - оперативно уведомляет о раздачах rutracker

Old Post 10.09.10 13:24 URL сообщения | инфо об авторе | жалоба | IP: Записан | редактировать | ОТВЕТИТЬ и ЦИТИРОВАТЬ
Время GMT. Текущее время 15:26. Подписаться на Тему | Версия для Печати
 

PHP Club форумы: > PHP и базы данных > PHP & Mysql > построение индексов на таблице
 
Оценить:
 
 
 
 

 © 1997-2010 PHPClubTeam      

Powered by vBulletin Copyright © 2000-2010 Jelsoft Enterprises Limited.