Xwab
Форумыnavigate_nextБазы данных

MYSQL Оптимизация
Сообщения
Hameleon

Привет всем! Нарисовался вопрос по MYSQL оптимизации. Если, например есть табла:
`id` - первычний ключ
`name` - KEY name (`name`)
Стоит ли ставить KEY() на поле `name` если выборку данных по полю `name` мы не производим. Тоесть, если так мы не делаем:
SELECT `id` FROM `users` WHERE `name`=’Виктория’
А производим выборку данных юзанием `id`:
SELECT `name` FROM `users` WHERE `id`=’1’
Тоесть насколько я понял просто ставить KEY или INDEX на поле `name` нету смысла…. Если мы это сделаем, то у нас просто увеличиться вес таблицы. Правильно я понял?

12 Янв 2011, 14:07
M0rbid

ПРавильно

12 Янв 2011, 14:08
Hameleon

M0rbid, хм, а смысл тогда вобще юзать INDEX или KEY если можно поставить первычный ключ на поле ID и все  ?

12 Янв 2011, 14:10
M0rbid

Hameleon, ну ты же выборку по этому полю не делаеш? Не джойниш по нему?

Ты сам ответил на все свои вопросы и на 3 пост тоже

12 Янв 2011, 14:12
Hameleon

M0rbid, где в инете можно почитать норм маны о KEY INDEX и атрибуте UNSIGNED, а то чет я в гугле ничего норм немогу найти...

12 Янв 2011, 14:16
Hameleon

насколько я понял, если на поле `id` от -2147483648 до 2147483647, поставить атрибут UNSIGNED, то получим беззнаковое целое число от 0 до 4294967295
Так?

12 Янв 2011, 14:19
Hameleon

Кстати, если мы еимеем таблицу:
`id` - первычний ключ
`name` - KEY name (`name`)
SELECT `id` FROM `users` WHERE `name`=’Виктория’
SELECT `name` FROM `users` WHERE `id`=’1’
Какой из этих запросов будет работать быстрее?

12 Янв 2011, 14:20
luethus

6. да

12 Янв 2011, 14:21
luethus

7. конечно по id.
и если тебе нужна только одна строчка выборке по name, то пиши LIMIT 1 - остановится когда найдет первое совпадение

12 Янв 2011, 14:21
Hameleon

Спасибо!

12 Янв 2011, 14:32
Ответить на тему