Привет всем! Нарисовался вопрос по 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` нету смысла…. Если мы это сделаем, то у нас просто увеличиться вес таблицы. Правильно я понял?
M0rbid, хм, а смысл тогда вобще юзать INDEX или KEY если можно поставить первычный ключ на поле ID и все ?
Hameleon, ну ты же выборку по этому полю не делаеш? Не джойниш по нему?
Ты сам ответил на все свои вопросы и на 3 пост тоже
M0rbid, где в инете можно почитать норм маны о KEY INDEX и атрибуте UNSIGNED, а то чет я в гугле ничего норм немогу найти...
насколько я понял, если на поле `id` от -2147483648 до 2147483647, поставить атрибут UNSIGNED, то получим беззнаковое целое число от 0 до 4294967295
Так?
Кстати, если мы еимеем таблицу:
`id` - первычний ключ
`name` - KEY name (`name`)
SELECT `id` FROM `users` WHERE `name`=’Виктория’
SELECT `name` FROM `users` WHERE `id`=’1’
Какой из этих запросов будет работать быстрее?
7. конечно по id.
и если тебе нужна только одна строчка выборке по name, то пиши LIMIT 1 - остановится когда найдет первое совпадение