SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.09.2008 13:22:39

vovabigov
Участник
Зарегистрирован: 03.09.2008
Сообщений: 4

Какое поле выбирать быстрее?

Если я в MYSQL делаю выборку

SELECT FROM my_tbl WHERE param1='молоко' AND param2='гвозди'

То имеет значение на быстроту выполнения какой параметр первым ставить?
И если да, то какой надо первее?

Неактивен

 

#2 03.09.2008 13:32:52

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какое поле выбирать быстрее?

В запросе не имеет значение, все зависит от того, какие у Вас ключи на таблице.
Для данного запроса лучше всего подходит ключ над двумя полями (param1, param2).

Неактивен

 

#3 03.09.2008 13:39:21

vovabigov
Участник
Зарегистрирован: 03.09.2008
Сообщений: 4

Re: Какое поле выбирать быстрее?

Спасибо.

А если ключ на обоих полях, то все-таки как сервер делает выборку? Вначале по первому полю, потом по второму или одновременно?

Неактивен

 

#4 03.09.2008 13:43:50

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какое поле выбирать быстрее?

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

Неактивен

 

#5 03.09.2008 14:45:12

vovabigov
Участник
Зарегистрирован: 03.09.2008
Сообщений: 4

Re: Какое поле выбирать быстрее?

А что значит тогда "ключ над двумя полями"?

Неактивен

 

#6 03.09.2008 14:56:45

paulus
Администратор
MySQL Authorized Developer and DBA
Зарегистрирован: 22.01.2007
Сообщений: 6757

Re: Какое поле выбирать быстрее?

ALTER TABLE tablename ADD INDEX indexname (field1, field2) - добавляет ключ над двумя полями.

Неактивен

 

#7 03.09.2008 15:07:11

rgbeast
Администратор
MySQL Authorized Developer and DBA
Откуда: Москва
Зарегистрирован: 21.01.2007
Сообщений: 3880

Re: Какое поле выбирать быстрее?

Составной индекс, см. http://sqlinfo.ru/forum/viewtopic.php?id=151

Неактивен

 

#8 03.09.2008 15:45:41

vovabigov
Участник
Зарегистрирован: 03.09.2008
Сообщений: 4

Re: Какое поле выбирать быстрее?

Спасибо большое!

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson