Top.Mail.Ru
Ответы

Mysql, необходим ли лимит при выборке по primary ключу

К примеру есть запрос
"update `blog_posts` set `title` = 'bla bla bla' where `id` = 99"
тут отсутствует LIMIT 1
Необходим ли он для оптимизации запроса или mysql самостоятельно ограничивает такой запрос при выборке по уникальному полю?

Дополнен

Неожиданно, но многие не поняли вопроса
вопрос именно в оптимизации, а конкретней будет ли mysql искать по primary полю далее после найденного значения = 99 при отсутствии limit
Вариант 1:
UPDATE `items` WHERE `price` =100
`price` не уникальный
mysql будет пролистывать всю таблицу проверяя каждую `price` даже после нахождения нужных результатов
Вариант 2:
UPDATE `items` WHERE `id`= 50
`id` Primary ai
будет ли mysql пролистывать таблицу дальше после нахождения значения? само собой больше не найдёт, но остановится ли пролистывание?

По дате
По рейтингу
Аватар пользователя
Просветленный

Ограничит по уникальному ключу
Другое дело то, что вы не понимаете как limit работает
Если ваш запрос без limit возвращает несколько строк, то апдейтятся все
А если вы навесите limit 1, то проапдейтится только первая

Аватар пользователя
Ученик

я прекрасно понимаю как работает лимит уникальное значение для выборки, это подразумевает что измениться должно только 1 значение
вопрос в том будет ли mysql искать по primary полю далее после найденного значения = 99 при отсутствии limit

Аватар пользователя
Оракул

если id уникальный ключ, то лимит не нужен, так как уникальный ключ не допускает повторений, а следственно изменена будет только одна строка. но если id просто числовое поле, то лимит имеет место быть, только в таком случает толку от нее, ведь будет меняться только одна строка , а другие так и будут висеть

Аватар пользователя
Ученик

для результата не нужен, это очевидно, вопрос в оптимизации



Видео по теме